export interface StorageLike { getItem: (key: string) => string | null; setItem: (key: string, value: string) => void; } export default class ConstantProperties { private readonly localStorage; private readonly sessionStorage; os: string; osVersion: string; browser: string; browserVersion: string; platform: string; screenHeight: number; screenWidth: number; initialReferrer: string; utmSource: string | null; utmMedium: string | null; utmCampaign: string | null; deviceId: string; searchEngine: string | null; user_id: string | null; constructor(localStorage: StorageLike, sessionStorage: StorageLike); get all(): { os: string; os_version: string; browser: string; browser_version: string; platform: string; screen_height: number; screen_width: number; initial_referrer: string; utm_source: string | null; utm_medium: string | null; utm_campaign: string | null; user_id: string | null; distinct_id: string; sdk_edition: string; sdk_version: string; timezone: string; search_engine: string | null; }; setUserId: (user_id: string | null) => void; resetUserId: (hard?: boolean) => void; get defaultPropertyKeys(): string[]; get distinctId(): string; private getDistinctDeviceId; private getReferrer; private parseUTM; private getSearchEngine; getSuperProperties: () => Record; saveSuperProperties: (props: Record) => void; clearSuperProperties: () => void; }