/// import { EventEmitter } from "events"; import { IAutoUpdateConfig } from "./AutoUpdateConfig"; import { AutoUpdateService } from "./AutoUpdateService"; import { IUser } from "./User"; export interface IFloodGateClient { IsReady(): boolean; FetchValue(key: string, defaultValue: any, callback: (value: any) => void, user?: IUser): any; GetValue(key: string, defaultValue: any, user?: IUser): any; } export declare class FloodGateClient extends EventEmitter implements IFloodGateClient { private isReady; config: IAutoUpdateConfig; service: AutoUpdateService; user?: IUser; constructor(_config: IAutoUpdateConfig); IsReady(): boolean; /** * Return a value of the requested flag or the default value * Fetch data from remote server if not available in cache * @param {string} _key - Flag key * @param {string} _defaultValue - Default value to return to the client if no flag is found * @param callback - Client callback method * @param _user - User to evaluate against */ FetchValue(_key: string, _defaultValue: any, callback: (value: any) => void, _user?: IUser): any; /** * Return a value of the requested flag or the default value. * * This method does not use callbacks, if the value is not present in the cache then the * default value is returned or if the client is not ready an error is thrown. * @param {string} _key - Flag key * @param {string} _defaultValue - Default value to return to the client if no flag is found * @param _user - User to evaluate against */ GetValue(_key: string, _defaultValue: any, _user?: IUser): any; /** * Forces client to update flags from remote server */ ForceRefresh(): void; }