import { EVENTS } from "./Events"; import { MiddlewareResolver } from "./MiddlewareResolver"; import { Route } from "./Route"; import { RouteMatcher } from "./RouteMatcher"; import { RoutingAdapterContract } from "./RoutingAdapterContract"; import { RoutingTable } from "./RoutingTable"; export declare class Router { protected adapter: RoutingAdapterContract; protected routingTable: RoutingTable; /** * @type {number} */ protected transitionId: number; /** * @type {RouteMatcher} */ protected currentRoute: RouteMatcher; /** * @type {Object} */ protected currentParams: Object; /** * @type {Object} */ protected currentQuery: Object; /** * @type {EventEmitter} */ protected eventEmitter: any; /** * */ protected middlewareResolver: MiddlewareResolver; /** * @param adapter */ constructor(adapter: RoutingAdapterContract); subscribe(event: EVENTS | "*", callback: Function): void; /** * @param routes * @return {Router} */ add(routes: Route | Route[]): this; /** * @param params * @return {{}} */ protected combineCurrentParamsWithNewParams(params: Object): { constructor: Function; }; /** * @return {Promise} */ start(): Promise; /** * @param name * @param params * @param query * @return {boolean} */ protected isSameDestination(name: string, params?: Object, query?: Object): boolean; /** * @param name * @param params * @param query * @return {any} */ buildUrl(name?: string, params?: Object, query?: Object): string; /** * @param state * @param params * @param query * @return {Promise} */ navigate(state?: string, params?: Object, query?: Object): void; /** * @param params */ changeParams(params: Object): void; /** * @param query */ changeQuery(query: Object): void; /** * @param resolver * @return {Router} */ setMiddlewareResolver(resolver: MiddlewareResolver): this; }