export { configDefinitionsBuiltIn };
export type { ConfigDefinition };
export type { ConfigDefinitions };
export type { ConfigDefinitionInternal };
export type { ConfigEffect };
import type { ConfigEnvInternal, ConfigEnv, ConfigValueSources, DefinedAtFilePath } from '../../../../../../shared/page-configs/PageConfig.js';
import type { Config, ConfigNameBuiltIn, ConfigNameGlobal } from '../../../../../../shared/page-configs/Config.js';
import { type ConfigDefinedAt } from '../../../../../../shared/page-configs/getConfigDefinedAt.js';
/** The meta definition of a config.
 *
 * https://vike.dev/meta
 */
type ConfigDefinition = {
    /** In what environment(s) the config value is loaded.
     *
     * https://vike.dev/meta
     */
    env: ConfigEnv;
    /** Disable config overriding and make config values cumulative instead.
     *
     * @default false
     *
     * https://vike.dev/meta
     */
    cumulative?: boolean;
    /**
     * Function called when the config value is defined.
     *
     * https://vike.dev/meta
     */
    effect?: ConfigEffect;
    /**
     * Always load the configuration value, and as soon as possible.
     *
     * @default false
     *
     * https://vike.dev/meta
     */
    eager?: boolean;
    /**
     * Whether the configuration always applies to all pages (no config inheritance).
     *
     * @default false
     *
     * https://vike.dev/extends#inheritance
     */
    global?: boolean | ((value: unknown, moreInfo: {
        isGlobalLocation: boolean;
    }) => boolean);
    type?: string | string[];
};
/**
 * Function called when the config value is defined.
 *
 * https://vike.dev/meta
 */
type ConfigEffect = (config: {
    /** The config value.
     *
     * https://vike.dev/meta
     */
    configValue: unknown;
    /** Where the config value is defined.
     *
     * https://vike.dev/meta
     */
    configDefinedAt: ConfigDefinedAt;
}) => Config | undefined;
/** For Vike internal use */
type ConfigDefinitionInternal = Omit<ConfigDefinition, 'env'> & {
    _computed?: (configValueSources: ConfigValueSources) => unknown;
    _valueIsFilePath?: true;
    _userEffectDefinedAtFilePath?: DefinedAtFilePath;
    env: ConfigEnvInternal;
};
type ConfigDefinitions = Record<string, // configName
ConfigDefinitionInternal>;
type ConfigDefinitionsBuiltIn = Record<ConfigNameBuiltIn | ConfigNameGlobal, ConfigDefinitionInternal>;
declare const configDefinitionsBuiltIn: ConfigDefinitionsBuiltIn;
