declare module 'router_js/lib/route-info' { import { Promise } from "rsvp"; import type { Dict } from "router_js/lib/core"; import type { SerializerFunc } from "router_js/lib/router"; import type Router from "router_js/lib/router"; import type { PublicTransition as Transition } from "router_js/lib/transition"; import type InternalTransition from "router_js/lib/transition"; export type IModel = {} & { id?: string | number; }; export type ModelFor = T extends Route ? V : never; export interface Route { inaccessibleByURL?: boolean; routeName: string; _internalName: string; context: T | undefined; events?: Dict<(...args: unknown[]) => unknown>; model?(params: Dict, transition: Transition): PromiseLike | undefined | T; deserialize?(params: Dict, transition: Transition): T | PromiseLike | undefined; serialize?(model: T | undefined, params: string[]): Dict | undefined; beforeModel?(transition: Transition): PromiseLike | any; afterModel?(resolvedModel: T | undefined, transition: Transition): PromiseLike | any; setup?(context: T | undefined, transition: Transition): void; enter?(transition: Transition): void; exit?(transition?: Transition): void; _internalReset?(wasReset: boolean, transition?: Transition): void; contextDidChange?(): void; redirect?(context: T | undefined, transition: Transition): void; buildRouteInfoMetadata?(): unknown; } export interface RouteInfo { readonly name: string; readonly parent: RouteInfo | RouteInfoWithAttributes | null; readonly child: RouteInfo | RouteInfoWithAttributes | null; readonly localName: string; readonly params: Dict | undefined; readonly paramNames: string[]; readonly queryParams: Dict; readonly metadata: unknown; find(predicate: (this: any, routeInfo: RouteInfo, i: number) => boolean, thisArg?: any): RouteInfo | undefined; } export interface RouteInfoWithAttributes extends RouteInfo { attributes: any; } export function toReadOnlyRouteInfo( routeInfos: InternalRouteInfo[], queryParams?: Dict, options?: { includeAttributes?: boolean; localizeMapUpdates?: boolean; } ): RouteInfoWithAttributes[] | RouteInfo[]; export default class InternalRouteInfo { private _routePromise?; private _route?; protected router: Router; paramNames: string[]; name: string; params: Dict | undefined; queryParams?: Dict; context?: ModelFor | PromiseLike> | undefined; isResolved: boolean; constructor(router: Router, name: string, paramNames: string[], route?: R); getModel(_transition: InternalTransition): import("rsvp").default.Promise>; serialize(_context?: ModelFor | null): Dict | undefined; resolve(transition: InternalTransition): Promise>; becomeResolved(transition: InternalTransition | null, resolvedContext: ModelFor | undefined): ResolvedRouteInfo; shouldSupersede(routeInfo?: InternalRouteInfo): boolean; get route(): R | undefined; set route(route: R | undefined); get routePromise(): Promise; set routePromise(routePromise: Promise); protected log(transition: InternalTransition, message: string): void; private updateRoute; private runBeforeModelHook; private runAfterModelHook; private stashResolvedModel; private fetchRoute; private _processRoute; } export class ResolvedRouteInfo extends InternalRouteInfo { isResolved: boolean; context: ModelFor | undefined; constructor(router: Router, name: string, paramNames: string[], params: Dict | undefined, route: R, context?: ModelFor); resolve(transition: InternalTransition): Promise; } export class UnresolvedRouteInfoByParam extends InternalRouteInfo { params: Dict; constructor(router: Router, name: string, paramNames: string[], params: Dict | undefined, route?: R); getModel(transition: InternalTransition): Promise>; } export class UnresolvedRouteInfoByObject extends InternalRouteInfo { serializer?: SerializerFunc>; constructor(router: Router, name: string, paramNames: string[], context: ModelFor | PromiseLike> | undefined); getModel(transition: InternalTransition): import("rsvp").default.Promise>; /** @private Serializes a route using its custom `serialize` method or by a default that looks up the expected property name from the dynamic segment. @param {Object} model the model to be serialized for this route */ serialize(model?: ModelFor): Dict | undefined; } }