export type { PageConfig };
export type { PageConfigLoaded };
export type { PageConfigBuildTime };
export type { PageConfigCommon };
export type { ConfigEnvInternal };
export type { ConfigEnv };
export type { PageConfigGlobal };
export type { PageConfigGlobalData };
export type { ConfigSource };
export type { ConfigValue };
export type { ConfigValues };
export type { ConfigValueSource };
export type { ConfigValueSources };
export type { DefinedAtInfo };
export type { DefinedAtInfoFull };
type ConfigEnv = 'client-only' | 'server-only' | 'server-and-client' | 'config-only';
type ConfigEnvInternal = ConfigEnv | '_routing-eager' | '_routing-lazy';
type PageConfigBuildTime = PageConfigCommon & {
    configValueSources: ConfigValueSources;
};
type PageConfigCommon = {
    pageId: string;
    isErrorPage: boolean;
    routeFilesystem: null | {
        routeString: string;
        definedBy: string;
    };
    configValues: ConfigValues;
};
type ConfigValueSource = {
    configEnv: ConfigEnvInternal;
    valueSerialized?: string;
    value?: unknown;
    valueIsImportedAtRuntime: boolean;
    valueIsFilePath?: true;
} & ({
    isComputed: false;
    definedAtInfo: DefinedAtInfo;
} | {
    isComputed: true;
    definedAtInfo: null;
    valueIsImportedAtRuntime: false;
});
type ConfigValueSources = Record<string, ConfigValueSource[]>;
type ConfigValue = {
    value: unknown;
    definedAtInfo: null | DefinedAtInfo;
};
type ConfigValues = Record<string, ConfigValue>;
type DefinedAtInfo = {
    filePath: string;
    fileExportPath: string[];
};
type DefinedAtInfoFull = {
    filePathRelativeToUserRootDir?: string;
    filePathAbsolute: string;
    fileExportPath: string[];
};
type ConfigSource = {
    configSourceFile: string;
} & ({
    configSourceFileExportName: string;
    configSourceFileDefaultExportKey?: undefined;
} | {
    configSourceFileDefaultExportKey: string;
    configSourceFileExportName?: undefined;
});
type PageConfig = PageConfigCommon & {
    loadConfigValuesAll: LoadConfigValuesAll;
    isLoaded?: true;
};
type PageConfigLoaded = PageConfig & {
    isLoaded: true;
};
type PageConfigGlobalData = {
    onPrerenderStart: null | ConfigValueSource;
    onBeforeRoute: null | ConfigValueSource;
};
type PageConfigGlobal = {
    onPrerenderStart: null | (ConfigValueSource & {
        value: unknown;
    });
    onBeforeRoute: null | (ConfigValueSource & {
        value: unknown;
    });
};
type LoadConfigValuesAll = () => Promise<({
    configName: string;
    importFilePath: string;
} & ({
    isPlusFile: true;
    importFileExports: Record<string, unknown>;
} | {
    isPlusFile: false;
    importFileExportName: string;
    importFileExportValue: unknown;
}))[]>;
