import HackleClient from "../core/HackleClient"; import HackleCore from "../core/HackleCore"; import { HackleUserResolver } from "./user/index.node"; import { Decision, FeatureFlagDecision, HackleEvent, HackleRemoteConfig, User, VariationKey } from "../core/internal/model/model"; import { PropertyOperations } from "./property/PropertyOperations"; import { PollingSynchronizer } from "../core/internal/sync/PollingSynchronizer"; import { HackleExperiment } from "../public/model"; import { HackleSubscriptionOperations } from "./subscription/HackleSubscriptionOperations"; export default class HackleClientImpl implements HackleClient { private readonly core; private readonly synchronizer; private readonly hackleUserResolver; private readonly initialization; private initialized; constructor(core: HackleCore, synchronizer: PollingSynchronizer, hackleUserResolver: HackleUserResolver); private initialize; variation(experimentKey: number, user: User | string, defaultVariation?: VariationKey): VariationKey; variationDetail(experimentKey: number, user: User | string, defaultVariation?: string): Decision; isFeatureOn(featureKey: number, user: User | string): boolean; featureFlagDetail(featureKey: number, user: User | string): FeatureFlagDecision; track(event: string | HackleEvent, user: User | string): void; remoteConfig(user: User): HackleRemoteConfig; updateUserProperties(operations: PropertyOperations, user: User): void; updatePushSubscriptions(operations: HackleSubscriptionOperations, user: User): void; updateSmsSubscriptions(operations: HackleSubscriptionOperations, user: User): void; updateKakaoSubscriptions(operations: HackleSubscriptionOperations, user: User): void; getExperiment(experimentKey: number): HackleExperiment | undefined; onReady(block: () => void, timeout?: number): void; onInitialized(config?: { timeout?: number; }): Promise<{ success: boolean; }>; close(): void; }