export interface FeatureManagerConfig { defaultStatus: boolean; } export declare type FeatureManagerSettings = Record; export declare class FeatureManager { config: FeatureManagerConfig; features: Record; protected internalSettings: Record; constructor(config: FeatureManagerConfig); /** * Determine if a feature is turned off. * * @param featureKey Key to represent the feature. * @returns True if the feature is off or the default is off. */ isOff(featureKey: string): boolean; /** * Determine if a feature is turned on. * * @param featureKey Key to represent the feature. * @returns True if the feature is on or the default is on. */ isOn(featureKey: string): boolean; /** * Turn a feature off. * * @param featureKey Key to represent the feature. * @returns false */ off(featureKey: string, settings?: FeatureManagerSettings): FeatureManagerSettings | boolean; /** * Turn a feature on. * * @param featureKey Key to represent the feature. * @returns true */ on(featureKey: string, settings?: FeatureManagerSettings): FeatureManagerSettings | boolean; set(featureKey: string, value: boolean | FeatureManagerSettings): FeatureManagerSettings | boolean; settings(featureKey: string): FeatureManagerSettings | undefined; }