import { FeatureFlag } from './FeatureFlag';
type PropertyIdObj = {
    name?: string;
    id?: string | number;
};
type FeatureFlagEvent = 'change';
type FeatureFlagEventCallback = () => void;
declare class FeatureFlagManager {
    private client;
    private data;
    private events;
    private overrideData;
    isEnabled: (flag: FeatureFlag) => boolean;
    initialize: (config: {
        apiKey: string;
        property?: PropertyIdObj;
    }) => Promise<void>;
    override: (data: Record<string, boolean | undefined>) => void;
    clearOverrides: () => void;
    on: (event: FeatureFlagEvent, callback: () => void) => void;
    off: (event: FeatureFlagEvent, callback: FeatureFlagEventCallback) => void;
    private dispatchEvent;
    private getLaunchDarklyContext;
    private onReceiveFlagData;
}
declare global {
    interface Window {
        __dev__: {
            overrideFeatureFlag: (key: FeatureFlag, value: boolean) => void;
            overrideFeatureFlags: (data: Record<FeatureFlag, boolean>) => void;
            featureFlagsUsed: typeof FeatureFlag;
            featureFlagManager: FeatureFlagManager;
        };
    }
}
export declare const featureFlagManager: FeatureFlagManager;
export {};
