import { PerfPayload } from '../utils/perf.js'; import { AllRequests, SettingsOptions, TErrors, RequestObject, TUserHelpers } from '../utils/types.js'; declare type Permalink = (input: { request: RequestObject; settings: SettingsOptions; helpers?: TUserHelpers; }) => string; declare type MetaOptions = { type: string; addedBy: string; pattern?: RegExp; routeString?: string; keys?: string[]; }; export declare type DataFnPayload = { data: any; query: any; helpers: TUserHelpers; settings: SettingsOptions; request: RequestObject; errors: TErrors; perf: PerfPayload; allRequests: AllRequests; next: () => any; }; export declare type DataFn = (payload: DataFnPayload) => PromiseLike<{ [key: string]: any; }> | { [key: string]: any; } | void; interface IBaseRouteOptions { template?: string; templateComponent?: (x: any) => string | Promise; layout?: string; layoutComponent?: (x: any) => string | Promise; data?: Record | DataFn; permalink: string | Permalink; all?: any[] | ((payload: { settings: SettingsOptions; query: any; helpers: TUserHelpers; data: any; perf: PerfPayload; }) => any[] | Promise); $$meta?: MetaOptions; name?: string; dynamic?: boolean; } export interface RouteOptions extends IBaseRouteOptions { [x: string]: any; } export declare type RoutesObject = Record; export interface ProcessedRouteOptions extends RouteOptions { template: string; templateComponent: (x: any) => string | Promise; layout: string; layoutComponent: (x: any) => string | Promise; data: Record | DataFn; permalink: Permalink; all: any[] | ((payload: { settings: SettingsOptions; query: any; helpers: TUserHelpers; data: any; perf: PerfPayload; }) => any[] | Promise); $$meta: MetaOptions; name: string; dynamic: boolean; } export declare type ProcessedRoutesObject = Record; export {};