import type { SettingValue } from "./ProjectConfig";
import { Setting } from "./ProjectConfig";
/**
 * 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 interface IOverrideDataSource {
    getOverrides(): Promise<{
        [name: string]: Setting;
    }>;
    getOverridesSync(): {
        [name: string]: Setting;
    };
}
export declare class MapOverrideDataSource implements IOverrideDataSource {
    private static getCurrentSettings;
    private readonly initialSettings;
    private readonly map?;
    private readonly ["constructor"];
    constructor(map: {
        [name: string]: NonNullable<SettingValue>;
    }, watchChanges?: boolean);
    getOverrides(): Promise<{
        [name: string]: Setting;
    }>;
    getOverridesSync(): {
        [name: string]: Setting;
    };
}
export declare class FlagOverrides {
    dataSource: IOverrideDataSource;
    behaviour: OverrideBehaviour;
    constructor(dataSource: IOverrideDataSource, behaviour: OverrideBehaviour);
}
//# sourceMappingURL=FlagOverrides.d.ts.map