export declare interface AliasPayload extends BaseEventPayload { type: 'alias'; userId: string; previousId?: string; } declare class Analytics { private config; private storage; private transport; private userId; private anonymousId; private traits; private readyCallbacks; private isReady; private queue; private flushTimer; constructor(options?: AnalyticsOptions); load(writeKey?: string, options?: AnalyticsOptions): void; ready(callback: () => void): void; private processReadyCallbacks; track(event: string, properties?: Record, options?: Record): void; identify(userId?: string, traits?: Record, options?: Record): void; page(category?: string, name?: string, properties?: Record, options?: Record): void; group(groupId: string, traits?: Record, options?: Record): void; alias(userId: string, previousId?: string, options?: Record): void; user(): User; reset(): void; flush(): void; private buildBasePayload; private enqueue; } declare const analytics: Analytics; export default analytics; export declare interface AnalyticsOptions { writeKey?: string; host?: string; flushAt?: number; flushInterval?: number; debug?: boolean; storagePrefix?: string; userIdKey?: string; anonymousIdKey?: string; traitsKey?: string; useBeacon?: boolean; timeout?: number; retries?: number; retryDelay?: number; } declare interface BaseEventPayload { userId?: string; anonymousId?: string; timestamp?: string; context?: Record; messageId?: string; } declare interface CampaignInfo { source?: string; medium?: string; name?: string; term?: string; content?: string; } export declare interface ContextInfo extends Record { page: { url: string; title: string; referrer: string; }; userAgent: string; library: { name: string; version: string; }; screen: { width: number; height: number; }; campaign?: CampaignInfo; } export declare type EventPayload = TrackPayload | IdentifyPayload | PagePayload | GroupPayload | AliasPayload; export declare interface GroupPayload extends BaseEventPayload { type: 'group'; groupId: string; traits?: Record; } export declare interface IdentifyPayload extends BaseEventPayload { type: 'identify'; traits?: Record; } export declare interface PagePayload extends BaseEventPayload { type: 'page'; name?: string; category?: string; properties?: Record; } export declare interface TrackPayload extends BaseEventPayload { type: 'track'; event: string; properties?: Record; } export declare interface User { id(): string | null; anonymousId(): string; traits(): Record; } export { }