/** * @typedef {Object} RouteParams */ /** * @typedef {(params: RouteParams, initial?: boolean) => any} RouteAction */ /** * @private */ export class Route { /** * @param {string} path * @param {RouteAction} action */ constructor(path: string, action: RouteAction); path: string; pattern: string; action: RouteAction; catchAll: boolean; regExp: RegExp; keys: string[]; /** * @private * @param {string} pattern * @returns {{ keys: Array, regExp: RegExp }} */ private _parsePattern; /** * @param {string} path * @returns {RouteParams | undefined} */ match(path: string): RouteParams | undefined; /** * @private * @param {Array} match * @return {RouteParams | undefined} */ private _getParams; } export type RouteParams = { [x: string]: string; }; export type RouteAction = (params: RouteParams, initial?: boolean) => any;