import { HackleUser, User } from "../../../core/internal/model/model"; import { IStorage } from "../../../core/internal/storage/Storage"; import { UserListener } from "../../../core/internal/user/UserListener"; import { UserManager } from "../../../core/internal/user/UserManager"; import { PropertyOperations } from "../../property/PropertyOperations"; import { UserCohortFetcher } from "../../../core/internal/user/UserCohortFetcher"; import { UserTargetFetcher } from "../../../core/internal/user/UserTargetFetcher"; import { Clock } from "../../../core/internal/util/TimeUtil"; import { CampaignParser } from "../../attribution/CampaignParser"; import { PageManager } from "../../../core/internal/page/PageManager"; import { Updated } from "../../../core/internal/util/Updated"; export declare class UserManagerImpl implements UserManager { private readonly hackleDeviceId; private readonly storage; private readonly userTargetFetcher; private readonly userCohortFetcher; private readonly campaignParser; private readonly pageManager; private readonly clock; private readonly userListeners; private readonly defaultUser; private context; constructor(hackleDeviceId: string, storage: UserStorage, userTargetFetcher: UserTargetFetcher, userCohortFetcher: UserCohortFetcher, campaignParser: CampaignParser, pageManager: PageManager, clock: Clock, previousUser: User | null, initUser: User | null); private initContext; addListener(listener: UserListener): void; get currentUser(): User; resolve(user?: User | string): HackleUser; private resolveContext; toHackleUser(user: User): HackleUser; private hackleUser; private hackleProperties; setUser(user: User): Updated; setUserId(userId: string | undefined): Updated; setDeviceId(deviceId: string): Updated; updateUserProperties(operations: PropertyOperations): Updated; resetUser(): Updated; private changeUser; private saveUser; private updateContext; private updateUser; private operateProperties; sync(): Promise; syncIfNeeded(updated: Updated): Promise; private syncCohort; private syncUserTarget; private hasNewIdentifiers; close(): Promise; } export declare class UserStorage { private readonly storage; constructor(storage: IStorage); getUser(): User | null; saveUser(user: User): void; get deviceId(): string | null; get userId(): string | null; setDeviceId(deviceId: string | null): void; setUserId(userId: string | null): void; private setId; }