export type Route = { id: string; handlers: { type: 'page' | 'route'; file: string; }[]; pattern: RegExp; test: (url: string) => boolean; exec: (url: string) => Record; parts: string[]; params: string[]; }; export type Template = { render: (data: Record) => string; stream: (req, res, data: Record>) => void; }; export type Store = { get: () => any; }; export type PageComponent = { default?: boolean; name: string; file: string; }; export type Page = { pattern: RegExp; parts: Array<{ component: PageComponent; params: string[]; }> }; export type ServerRoute = { name: string; pattern: RegExp; file: string; params: string[]; };