import type { Method } from '@stackpress/lib/types'; import type { ActionRouterArgs, ViewRouterEngine, ViewRouterRender, ViewRouterTaskItem, ActionRouterListener } from '../types.js'; import type ActionRouter from './ActionRouter.js'; export default class ViewRouter { readonly views: Map>; protected _engine: ViewRouterEngine; protected _render: ViewRouterRender; protected _router: ActionRouter; protected _listen: ActionRouterListener; get engine(): ViewRouterEngine; set engine(engine: ViewRouterEngine); get render(): ViewRouterRender; set render(render: ViewRouterRender); constructor(router: ActionRouter, listen: ActionRouterListener); action(event: string, action: string, priority?: number): (...[props]: ActionRouterArgs) => Promise; all(path: string, action: string, priority?: number): this; connect(path: string, action: string, priority?: number): this; delete(path: string, action: string, priority?: number): this; get(path: string, action: string, priority?: number): this; head(path: string, action: string, priority?: number): this; on(event: string | RegExp, entry: string, priority?: number): this; options(path: string, action: string, priority?: number): this; patch(path: string, action: string, priority?: number): this; post(path: string, action: string, priority?: number): this; put(path: string, action: string, priority?: number): this; route(method: Method, path: string, entry: string, priority?: number): this; trace(path: string, action: string, priority?: number): this; use(router: ViewRouter): this; }