import UrlPattern from "url-pattern"; import { RemoteIconData } from "../icons"; export interface IRouteDisplay { title: string; description: string; route: string; icon: RemoteIconData; } export declare class RouteDisplay implements IRouteDisplay { description: string; icon: RemoteIconData; route: string; title: string; constructor(props: any); static fromSpec(spec: any, params: any): RouteDisplay; } export declare enum RouteType { LIST = 0, DETAIL = 1, HOME = 2, MIXED = 3 } export interface IRouteSpec { pattern: string; name: string; params?: P; type?: RouteType; dataFetcher?: (params: P) => Promise; title: DisplayFieldBuilder; description?: DisplayFieldBuilder; icon?: DisplayFieldBuilder; } interface DisplayFieldBuilder { default: O; template?: string; builder?: (data: I) => O; } export declare class RouteSpec implements IRouteSpec { pattern: string; name: string; params: P; data: T; type: RouteType; dataFetcher: (params: P) => Promise; title: DisplayFieldBuilder; description?: DisplayFieldBuilder; icon?: DisplayFieldBuilder; _compiledPattern: UrlPattern; constructor(props: IRouteSpec); fetchData(): Promise; } export declare class RouteInstance extends RouteSpec { data: T; constructor(props: IRouteSpec); toDisplay(): Promise; buildRoute(): string; buildTitle(): Promise; buildDescription(): Promise; buildIcon(): Promise; } export {};