/** * Whether a visit says where the person came from. The browser uses this to * decide which visits to keep as first and last touch, and the server uses the * same share-link rules to derive `referral_source`, so the two can't drift. */ export interface AttributionTouch { ref?: string; via?: string; utm_source?: string; utm_medium?: string; utm_campaign?: string; utm_content?: string; utm_term?: string; gclid?: string; msclkid?: string; vector_source?: string; landing_path?: string; landing_referrer?: string; site_referrer?: string; } export declare function shareLandingSource(path: string | undefined): "clip_share" | "plan_share" | undefined; export declare function isFirstPartyHost(host: string | undefined): boolean; /** * Whether a referrer host says where someone came from. Moving between our own * apps and the marketing site, a local dev server, or returning from Google * sign-in is navigation, not a source. The browser and the server both use * this, so capture and `referral_source` agree. */ export declare function isSourceReferrerHost(host: string | undefined): boolean; export declare function hasAttributionSource(touch: AttributionTouch | null | undefined): boolean;