import { Constructable, FASTElement, ViewTemplate } from "@microsoft/fast-element"; import { RecognizedRoute, RouteParameterConverter } from "./recognizer.js"; import { NavigationCommand } from "./commands.js"; import { Layout, Transition } from "./view.js"; import { RouterConfiguration } from "./configuration.js"; import { Route } from "./navigation.js"; /** * @internal */ export declare const childRouteParameter = "fast-child-route"; /** * @alpha */ export declare type SupportsSettings = { settings?: TSettings; }; /** * @alpha */ export declare type PathedRouteDefinition = SupportsSettings & Route; /** * @alpha */ export declare type IgnorableRouteDefinition = PathedRouteDefinition; /** * @alpha */ export declare type LayoutAndTransitionRouteDefinition = { layout?: Layout | ViewTemplate; transition?: Transition; }; /** * @alpha */ export declare type RedirectRouteDefinition = PathedRouteDefinition & { redirect: string; }; /** * @alpha */ export declare type HasTitle = { title?: string; }; /** * @alpha */ export declare type NavigableRouteDefinition = PathedRouteDefinition & LayoutAndTransitionRouteDefinition & HasTitle & { childRouters?: boolean; }; /** * @alpha */ export declare type FASTElementConstructor = new () => FASTElement; /** * @alpha */ export declare type HasElement = { element: string | FASTElementConstructor | HTMLElement | (() => Promise); }; /** * @alpha */ export declare type ElementFallbackRouteDefinition = LayoutAndTransitionRouteDefinition & HasElement & SupportsSettings & HasTitle; /** * @alpha */ export declare type ElementRouteDefinition = NavigableRouteDefinition & HasElement; /** * @alpha */ export declare type HasTemplate = { template: ViewTemplate | (() => Promise); }; /** * @alpha */ export declare type TemplateFallbackRouteDefinition = LayoutAndTransitionRouteDefinition & HasTemplate & SupportsSettings & HasTitle; /** * @alpha */ export declare type TemplateRouteDefinition = NavigableRouteDefinition & HasTemplate; /** * @alpha */ export declare type HasCommand = { command: NavigationCommand; }; /** * @alpha */ export declare type CommandRouteDefinition = PathedRouteDefinition & HasCommand & HasTitle; /** * @alpha */ export declare type CommandFallbackRouteDefinition = HasCommand & SupportsSettings & HasTitle; /** * @alpha */ export declare type FallbackRouteDefinition = ElementFallbackRouteDefinition | TemplateFallbackRouteDefinition | Pick, "redirect"> | CommandFallbackRouteDefinition; /** * @alpha */ export declare type DefinitionCallback = () => Promise | FallbackRouteDefinition; /** * @alpha */ export declare type RenderableRouteDefinition = ElementRouteDefinition | TemplateRouteDefinition; /** * @alpha */ export declare type MappableRouteDefinition = RenderableRouteDefinition | RedirectRouteDefinition | CommandRouteDefinition | ParentRouteDefinition; /** * @alpha */ export declare type ParentRouteDefinition = PathedRouteDefinition & LayoutAndTransitionRouteDefinition & { children: MappableRouteDefinition[]; }; /** * @alpha */ export declare type RouteMatch = { route: RecognizedRoute; command: NavigationCommand; }; /** * @alpha */ export declare type ConverterObject = { convert: RouteParameterConverter; }; /** * @alpha */ export declare type ParameterConverter = RouteParameterConverter | ConverterObject | Constructable; /** * @alpha */ export declare class RouteCollection { private owner; private _recognizer; private pathToCommand; private fallbackCommand; private fallbackSettings; private converters; constructor(owner: RouterConfiguration); private get recognizer(); ignore(definitionOrString: IgnorableRouteDefinition | string): void; map(...routes: MappableRouteDefinition[]): void; fallback(definitionOrCallback: FallbackRouteDefinition | DefinitionCallback): void; converter(name: string, converter: ParameterConverter): void; recognize(path: string): Promise | null>; /** * Generate a path and query string from a route name and params object. * * @param name - The name of the route to generate from. * @param params - The route params to use when populating the pattern. * Properties not required by the pattern will be appended to the query string. * @returns The generated absolute path and query string. */ generateFromName(name: string, params: object): string | null; /** * Generate a path and query string from a route path and params object. * * @param path - The path of the route to generate from. * @param params - The route params to use when populating the pattern. * Properties not required by the pattern will be appended to the query string. * @returns The generated absolute path and query string. */ generateFromPath(path: string, params: object): string | null; private aggregateConverters; }