import { Component, type HTMLTemplateResult } from '@a11d/lit';
export type RoutableParameters = void | Record;
export type UrlMatchMode = 'all' | 'ignore-parameters';
export declare enum NavigationStrategy {
Page = 0,
Tab = 1,
Window = 2
}
export declare abstract class RoutableComponent extends Component {
static basePath: string;
static readonly container: Set;
static host: AbstractConstructor | Constructor;
private static _routes;
static get routes(): string[];
static set routes(value: string[]);
static render(p: Record): HTMLTemplateResult;
static readonly connectedInstances: Set>;
static get boundComponent(): RoutableComponent | undefined;
static get url(): URL;
static setUrl(value: URL, force?: boolean): void;
parameters: T;
constructor(parameters: T);
get route(): string | undefined;
get boundToWindow(): boolean;
navigate(strategy?: NavigationStrategy, force?: boolean): Promise;
get url(): URL | undefined;
/**
* Determines if the current URL matches the route of this component.
* @param mode The matching mode. 'all' matches the path and parameters, 'ignore-parameters' matches only the path. Defaults to 'all'.
*/
urlMatches(options?: {
mode?: UrlMatchMode;
url?: URL;
}): boolean;
protected updateUrl(force?: boolean): void;
protected refresh(parameters?: T): Promise;
}
export type RoutableComponentConstructor = Constructor> & {
host: AbstractConstructor | Constructor;
routes: Array;
render: (p: Record) => HTMLTemplateResult;
};
//# sourceMappingURL=RoutableComponent.d.ts.map