import { User } from "../domain/user"; import { JournifyEvent } from "../domain/event"; import { ExternalIdsSessionCache } from "../domain/externalId"; import { Store, StoresGroup } from "../store/store"; import { Group } from "../domain/group"; import { Browser } from "./browser"; export interface EventFactory { setUser(user: User): void; setGroup(group: Group): void; newIdentifyEvent(): Promise; newTrackEvent(eventName: string, properties?: JournifyEvent["properties"], traits?: JournifyEvent["traits"]): Promise; newPageEvent(pageName: string, properties?: JournifyEvent["properties"], traits?: JournifyEvent["traits"]): Promise; newGroupEvent(): Promise; } export declare class EventFactoryImpl implements EventFactory { private user; private group; private readonly browser; private readonly stores; private readonly cookiesStore; private readonly externalIdsSessionCache; constructor(stores: StoresGroup, cookiesStore: Store, browser: Browser, externalIdsSessionCache: ExternalIdsSessionCache); setGroup(group: Group): void; setUser(user: User): void; newIdentifyEvent(): Promise; newTrackEvent(eventName: string, properties?: JournifyEvent["properties"], traits?: JournifyEvent["traits"]): Promise; newPageEvent(pageName: string, properties?: JournifyEvent["properties"], traits?: JournifyEvent["traits"]): Promise; newGroupEvent(): Promise; private normalizeEvent; private appendTraitsFromProperties; private getUserID; private getExternalIDs; private getGoogleClickId; private getGoogleClickIdFromGclCookie; private getGoogleClickIdFromFPGCookie; private getTwitterClickId; }