import type { FormatLocaleDefinition } from 'd3-format'; import type { Data } from './types.ts'; export type GraphQLQueryConfig = { query: string; variables?: Record; }; export type ContextConfig = string | GraphQLQueryConfig | Data; export type PaginateConfig = { template?: string; pageSize: number; firstPage?: string; path?: string; data?: string | GraphQLQueryConfig; itemName?: string; property?: string; }; export type RouteConfig = { path: string; template: string; context?: ContextConfig; paginate?: PaginateConfig; }; export type ResolvedRouteConfig = { context: Data; } & Omit; export type DatesConfig = { tz: string; format: string; locale?: string; }; export type NumbersConfig = { format?: string; config?: Partial; }; export type RoutesMap = Record; export type FileLoader = (path: string) => Promise; export type SyncFileLoader = (path: string) => string | undefined; export type Config = { env: Record; context?: ContextConfig; routes: RoutesMap; imageBaseUrl: string; assetBaseUrl: string; imageDefaults: Record; locale: string; pathPrefix: string; templatePath: string; buildPath: string; staticPath: string; dates: DatesConfig; usageStats: boolean; htmlCompression?: { enabled: boolean; options?: Record; }; gzip: boolean; numbers?: NumbersConfig; locales?: Record; }; export declare function prepareConfig(config: Partial, envConfig?: Partial): Config; export declare function loadConfig(fileLoader: FileLoader, configFilePath?: string, envConfig?: Partial): Promise; export declare function localizeConfig(config: Config, localeStr: string): Config; export type RouteInfo = { routeName: string; path: string; isPaginated: boolean; }; export type RouteQuery = { filePath: string; } & RouteInfo; export declare function isGraphQLQueryConfig(x: ContextConfig): x is GraphQLQueryConfig; export declare function getGraphQLQueries(config: Pick): RouteQuery[];