import { RedirectRequest } from "@tandem/editor/browser/messages"; import { Kernel, Observable, PropertyWatcher, IBrokerBus } from "@tandem/common"; export interface IRouterState { [Identifier: string]: string; } export interface IRouteHandlerLoadResult { redirect?: RedirectRequest; state?: IRouterState; } export interface IRouteHandler { load(request: RedirectRequest): Promise; } export declare abstract class BaseRouteHandler implements IRouteHandler { protected bus: IBrokerBus; protected kernel: Kernel; abstract load(request: RedirectRequest): Promise; } export declare class Router extends Observable { private _kernel; private _bus; private _state; private _path; readonly stateWatcher: PropertyWatcher; readonly currentPathWatcher: PropertyWatcher; constructor(); readonly state: IRouterState; readonly currentPath: string; private setState(path, state); redirect(request: RedirectRequest): any; }