declare type Params = { [key: string]: string | number | undefined; }; export declare const queryFactory: (params: Params) => string; export declare abstract class UrlScheme { protected url: string; protected currentRoutePath?: string | undefined; protected constructor(url: string, currentRoutePath?: string | undefined); toRouteString(): string; isCurrent(): boolean; abstract toUrl(arg: T): string; } export declare class StaticUrl extends UrlScheme { constructor(url: string, currentRoutePath?: string); toUrl(arg?: T): string; } export declare class DynamicUrl extends UrlScheme { constructor(url: string, currentRoutePath?: string); toUrl(arg: T): string; } export declare const staticRoute: (url: string) => (currentPath?: string | undefined) => StaticUrl; export declare const dynamicRoute: (url: string) => (currentPath?: string | undefined) => DynamicUrl; declare type Routes = { [key: string]: ReturnType | ReturnType; }; declare type Links = { [P in keyof T]: ReturnType; }; export declare const nextLinksHooksFactory: (routes: T) => () => Links; export {};