/// <reference types="node" />
import { Decision, EventProcessor, FeatureFlagDecision, User, VariationKey, WorkspaceFetcher, HackleEvent, Properties } from "@hackler/sdk-core";
import { EventEmitter } from "events";
import HackleClient, { PageView } from "./HackleClient";
export default class HackleClientImpl implements HackleClient {
    private hackleInternalClient;
    constructor(workspaceFetcher: WorkspaceFetcher, eventProcessor: EventProcessor, eventEmitter: EventEmitter);
    variation(experimentKey: number, user?: User | string, defaultVariation?: VariationKey): string;
    variationDetail(experimentKey: number, user?: User | string, defaultVariation?: VariationKey): Decision;
    isFeatureOn(featureKey: number, user?: User | string): boolean;
    featureFlagDetail(featureKey: number, user?: User | string): FeatureFlagDecision;
    track(event: HackleEvent | string, user?: User | string): void;
    trackPageView(option?: PageView): void;
    _getHackleProperties(): Properties;
    _getUser(user?: User | string): User;
    onReady(block: () => void, timeout?: number): void;
    close(): void;
    private _convertEvent;
}
//# sourceMappingURL=HackleClientImpl.d.ts.map