import type { Setting, SettingValue } from "./ProjectConfig.js"; export type FlagOverrides = { dataSource: IOverrideDataSource; behaviour: OverrideBehaviour; }; /** * Specifies the behaviours for flag overrides. */ export declare enum OverrideBehaviour { /** * When evaluating values, the SDK will not use feature flags and settings from the ConfigCat CDN, but it will use * all feature flags and settings that are loaded from local-override sources. */ LocalOnly = 0, /** * When evaluating values, the SDK will use all feature flags and settings that are downloaded from the ConfigCat CDN, * plus all feature flags and settings that are loaded from local-override sources. If a feature flag or a setting is * defined both in the fetched and the local-override source then the local-override version will take precedence. */ LocalOverRemote = 1, /** * When evaluating values, the SDK will use all feature flags and settings that are downloaded from the ConfigCat CDN, * plus all feature flags and settings that are loaded from local-override sources. If a feature flag or a setting is * defined both in the fetched and the local-override source then the fetched version will take precedence. */ RemoteOverLocal = 2 } export declare function nameOfOverrideBehaviour(value: OverrideBehaviour): string; export interface IOverrideDataSource { getOverrides(): Record; } export declare class MapOverrideDataSource implements IOverrideDataSource { private readonly initialSettings; private readonly map; constructor(map: Record>, watchChanges?: boolean); getOverrides(): Record; } export interface IQueryStringProvider { readonly currentValue: string | Record> | null | undefined; } export declare class QueryParamsOverrideDataSource implements IOverrideDataSource { private readonly watchChanges; private readonly paramPrefix; private readonly queryStringProvider; private queryString; private settings; constructor(watchChanges?: boolean, paramPrefix?: string, queryStringProvider?: IQueryStringProvider); getOverrides(): Record; }