import { Evt } from 'evt'; import { PageCtx, IO, IntervalActionDefinition, IntervalActionDefinitions } from '../types'; import { Layout } from './Layout'; export interface RouterConfig { name: string; description?: string; unlisted?: boolean; routes?: IntervalActionDefinitions; actions?: Record; groups?: Record; index?: (display: IO['display'], ctx: PageCtx) => Promise; } export default class Router { #private; name: string; description?: string; unlisted?: boolean; routes: IntervalActionDefinitions; index?: (display: IO['display'], ctx: PageCtx) => Promise; onChange: Evt; constructor(config: RouterConfig); add(slug: string, route: IntervalActionDefinition | Router): void; remove(slug: string): void; }