import { ModelQueryType } from '../../../common/find_query.cjs';
import { ProvideEntity } from '../../../common/model_factory.cjs';

declare const optionType: "LOCAL" | "VAULT";
declare type PrioritizeSourceType = typeof optionType;
declare class ConfiguratorUtilSetting {
    configuratorRootPath: string;
    localSetting: {
        localRootPath: string;
        localConfigPath?: string;
    };
    sessionSetting: {
        sessionStorageRootPath: string;
        sessionExpiration: string;
        sessionFlushOnFirstStart: boolean;
        sessionFlushOnCreated: boolean;
        sessionHistoryEnabled: boolean;
    };
    vaultSetting?: {
        vaultApiVersion: string;
        vaultKvVersion?: 1 | 2 | undefined;
        vaultEndpoint: string;
        vaultKey: string;
        vaultRootPath: string;
        vaultToken: string;
        vaultConfigPath?: string | undefined;
    } | undefined;
    enabledSource: {
        vault: boolean;
        local: boolean;
        session: boolean;
    };
    prioritizeConfigSource: PrioritizeSourceType;
    commonConfigPath?: string | undefined;
    constructor(configuratorRootPath: string, localSetting: {
        localRootPath: string;
        localConfigPath?: string;
    }, sessionSetting: {
        sessionStorageRootPath: string;
        sessionExpiration: string;
        sessionFlushOnFirstStart: boolean;
        sessionFlushOnCreated: boolean;
        sessionHistoryEnabled: boolean;
    }, vaultSetting?: {
        vaultApiVersion: string;
        vaultKvVersion?: 1 | 2 | undefined;
        vaultEndpoint: string;
        vaultKey: string;
        vaultRootPath: string;
        vaultToken: string;
        vaultConfigPath?: string | undefined;
    } | undefined, enabledSource?: {
        vault: boolean;
        local: boolean;
        session: boolean;
    }, prioritizeConfigSource?: PrioritizeSourceType, commonConfigPath?: string | undefined);
    static factory: (input: ProvideEntity<ConfiguratorUtilSetting, never>, options?: {
        defaultValue: boolean;
        excludeExtraProp: boolean;
    } | undefined, customMapperOverride?: ((input: ProvideEntity<ConfiguratorUtilSetting, never>) => never) | undefined) => ConfiguratorUtilSetting;
}
declare class ConfiguratorUtilRequest<E> {
    commonConfigPath: string;
    configName: string;
    configMapper: (config: unknown) => E | undefined;
    sourceMapper?: ((source: unknown) => Record<string, any>) | undefined;
    settingOverride?: ((currentSetting: ConfiguratorUtilSetting) => ConfiguratorUtilSetting) | undefined;
    defaultFilter?: ModelQueryType<E> | undefined;
    constructor(commonConfigPath: string, configName: string, configMapper: (config: unknown) => E | undefined, sourceMapper?: ((source: unknown) => Record<string, any>) | undefined, settingOverride?: ((currentSetting: ConfiguratorUtilSetting) => ConfiguratorUtilSetting) | undefined, defaultFilter?: ModelQueryType<E> | undefined);
}

export { ConfiguratorUtilRequest, ConfiguratorUtilSetting, PrioritizeSourceType, optionType };
