import { build } from '@getkoala/edge-api-client'; import { CookieAttributes } from 'js-cookie'; import { BootstrapData } from '../api/bootstrap'; import { AnonymousProfile, Qualification, QualificationResult } from '../api/collect'; import { ProjectSettings } from '../browser'; import { ProfileSubscription } from '../channels/profile-channel'; import { when } from '../lib/when'; import { EventContext, EventOptions } from './event-context'; import { Emitter } from './event-emitter'; import { EventQueue } from './event-queue'; import { MetricsQueue } from './metrics-queue'; import { PageTracker, PageView } from './page/page-tracker'; import { Session } from './session'; import { User, UserStore } from './user'; import { FormCollectionOptions } from './forms'; declare global { interface Window { drift?: any; navattic?: any; rudderanalytics?: any; qualified?: any; Intercom?: any; FS?: any; posthog?: any; _hsq?: { push: (callParam: any) => void; }; _hstc_ran?: boolean; _ko_hsq?: boolean; } } export interface Profile { page_views: PageView[]; user: User; email?: string; referrer: string; events: unknown[] | undefined; traits: object | undefined; qualification?: QualificationResult; } export interface Options { project: string; profileId?: string; a?: AnonymousProfile | null; hookSegment?: boolean; } export interface KoalaEventMap { initialized: [BootstrapData]; track: [string, { [key: string]: unknown; }]; identify: [string | undefined, Record]; 'profile-update': []; 'profile-id-update': [string]; qualification: [Qualification]; } export declare type CollectorOptions = Partial & Options; export declare class AnalyticsCollector extends Emitter { version: string; qualification?: QualificationResult; stats: MetricsQueue; options: CollectorOptions; private referrer; eventQueue: EventQueue; private initialized; subscription: ProfileSubscription | null; pageTracker: PageTracker; private bootstrapData?; private autocapture; private referrerAllowed; private geoAllowed; user: UserStore; context: EventContext; edge: ReturnType; constructor(options: CollectorOptions); ready(fn?: () => Promise | unknown): Promise; cookieDefaults(): CookieAttributes; collectForms: (options?: FormCollectionOptions) => void; private detectIdLink; private detectKoTraits; private detectKoEmail; private detectUtmId; private initPlugins; private detectorStats; private flush; stopAutocapture(): void; startAutocapture(): void; get session(): Session; get email(): string | undefined; private detectHubspot; private detectSegment; private detectRudder; track(event: string, properties?: { [key: string]: unknown; }, options?: EventOptions): Promise; identify(email: string, traits?: Record, options?: EventOptions): Promise; identify(traits: Record, options?: EventOptions): Promise; subscribe(): void; unsubscribe(): void; private buildAnonymousProfile; private updateQualification; qualify(email?: string): Promise; private serialize; private deserialize; get profile(): Profile; reset(): Promise; trackError: (error: Error, method?: string | undefined) => void; get when(): typeof when; /** Backwards compatibility **/ get e(): import("@getkoala/edge-api-client/dist/events").Events; get p(): import("@getkoala/edge-api-client/dist/traits").Traits; get page(): import("@getkoala/edge-api-client/dist/page").Page; mountWidget(): void; }