import { TMemoryAdapterInterface, adapterIdentifiers, TUser, TFlags, TUpdateFlagsOptions, TMemoryAdapterArgs, TAdapterEventHandlers, AdapterInitializationStatus, AdapterConfigurationStatus, TFlagName, TFlagVariation } from '@flopflip/types';

declare class MemoryAdapter implements TMemoryAdapterInterface {
    #private;
    id: typeof adapterIdentifiers.memory;
    constructor();
    getUser: () => TUser | undefined;
    updateFlags: (flags: TFlags, options?: TUpdateFlagsOptions) => void;
    configure(adapterArgs: TMemoryAdapterArgs, adapterEventHandlers: TAdapterEventHandlers): Promise<{
        initializationStatus: AdapterInitializationStatus;
    }>;
    reconfigure(adapterArgs: TMemoryAdapterArgs, _adapterEventHandlers: TAdapterEventHandlers): Promise<{
        initializationStatus: AdapterInitializationStatus;
    }>;
    getIsConfigurationStatus(configurationStatus: AdapterConfigurationStatus): boolean;
    setConfigurationStatus(nextConfigurationStatus: AdapterConfigurationStatus): void;
    reset: () => void;
    waitUntilConfigured(): Promise<void>;
    getFlag(flagName: TFlagName): TFlagVariation;
    unsubscribe: () => void;
    subscribe: () => void;
}
declare const adapter: MemoryAdapter;

declare const version = "__@FLOPFLIP/VERSION_OF_RELEASE__";

export { adapter, version };
