// Type definitions for vue-router 0.7.7 // Project: https://github.com/vuejs/vue-router // Definitions by: kaorun343 // Definitions: https://github.com/borisyankov/DefinitelyTyped /// /// declare namespace vuerouter { interface Transition { from: $route; to: $route; next(data?: any): void; abort(reason?: any): void; redirect(path: string): void; } interface RouterOption { hashbang?: boolean; history?: boolean; abstract?: boolean; root?: string; linkActiveClass?: string; saveScrollPosition?: boolean; transitionOnLoad?: boolean; suppressTransitionError?: boolean; } interface RouterStatic { new (option?: RouterOption): Router; } interface RouteMapObject { component: any; subRoutes?: { [key: string]: RouteMapObject }; [key: string]: any; } interface Router { app: RootVueApp; mode: string; start(App: any, el: string | Element): void; stop(): void; map(routeMap: { [path: string]: RouteMapObject }): void; on(path: string, config: Object): void; go(path: string | Object): void; replace(path: string): void; redirect(redirectMap: Object): void; alias(aliasMap: Object): void; beforeEach(hook: (transition: Transition) => any): void; afterEach(hook: (transition: Transition) => any): void; } interface $route { path: string; params: Params; query: Query; router: Router; matched: string[]; name: string; [key: string]: any; } interface TransitionHook { data?(transition?: Transition): Thenable | void; activate?(transition?: Transition): Thenable | void; deactivate?(transition?: Transition): Thenable | void; canActivate?(transition?: Transition): Thenable | boolean | void; canDeactivate?(transition?: Transition): Thenable | boolean | void; canReuse?: boolean | ((transition: Transition) => boolean); } } declare namespace vuejs { interface Vue { $route: vuerouter.$route; } interface ComponentOption { route?: vuerouter.TransitionHook; } } declare var VueRouter: vuerouter.RouterStatic; declare module "vue-router" { export = VueRouter; }