import { ModelQueryType } from '../../common/find_query.cjs';
import { ConfiguratorUtilRequest, ConfiguratorUtilSetting } from './models/configurator_util.model.cjs';
export { PrioritizeSourceType } from './models/configurator_util.model.cjs';
import { ConfigSourceOptionType } from './config_sources/config_source_option.cjs';

declare const ConfiguratorUtil: <E extends Record<any, any> = any>(request: ConfiguratorUtilRequest<E>) => {
    find: (query: ModelQueryType<E>) => Promise<{
        value: E;
        fromSource: ConfigSourceOptionType;
    } | undefined>;
    fetch: (query: ModelQueryType<E>) => Promise<{
        value: E;
        fromSource: ConfigSourceOptionType;
    }[]>;
    fetchAll: (options?: {
        populated?: boolean;
    }) => Promise<{
        value: E[];
        fromSource: ConfigSourceOptionType;
    }>;
    settingOverride(overrides: (currentSetting: ConfiguratorUtilSetting) => ConfiguratorUtilSetting): void;
};

export { ConfiguratorUtil, ConfiguratorUtilRequest, ConfiguratorUtilSetting };
