import type { GetAreaRoutes, GetCreateURLFns, GetRoutesParams, ParamsArg, ParseRoute, ParseRoutes, PrependBasePath, UnionToIntersection } from "./types.js"; export declare const createRouter: , BasePath extends string = "">(routes: Readonly, options?: { basePath?: BasePath; }) => { useRoute: ["path"], ParseRoutes>>> | keyof GetAreaRoutes["path"], ParseRoutes>>>(routeNames: readonly RouteName[]) => RouteName extends string ? { key: string; name: RouteName; params: (GetRoutesParams["path"], ParseRoutes>>> & GetRoutesParams["path"], ParseRoutes>, keyof GetAreaRoutes["path"], ParseRoutes>>>>)[RouteName]; } | undefined : never; getRoute: ["path"], ParseRoutes>>> | keyof GetAreaRoutes["path"], ParseRoutes>>>(routeNames: readonly RouteName[], location?: string) => RouteName extends string ? { key: string; name: RouteName; params: (GetRoutesParams["path"], ParseRoutes>>> & GetRoutesParams["path"], ParseRoutes>, keyof GetAreaRoutes["path"], ParseRoutes>>>>)[RouteName]; } | undefined : never; push: ["path"], ParseRoutes>>>>(routeName: RouteName, ...params: ParamsArg["path"], ParseRoutes>, keyof GetAreaRoutes["path"], ParseRoutes>>>>[RouteName]>>) => void; replace: ["path"], ParseRoutes>>>>(routeName: RouteName, ...params: ParamsArg["path"], ParseRoutes>, keyof GetAreaRoutes["path"], ParseRoutes>>>>[RouteName]>>) => void; P: { [RouteName in keyof Routes]: (params: Params) => { readonly name: RouteName; readonly params: Params; }; }; } & GetCreateURLFns["path"], ParseRoutes>, keyof GetAreaRoutes["path"], ParseRoutes>>>>>;