import Vue, { VueConstructor } from 'vue';
import Router, { RouteConfig, RouterOptions, Route, NavigationGuard } from 'vue-router';
export { RouteConfig, RouterOptions } from 'vue-router';
declare type INavigationGuardItem<V extends Vue> = NavigationGuard<V> | ((to: Route, from: Route) => any);
export interface INavigationGuards<V extends Vue> {
    [key: string]: INavigationGuardItem<V>;
}
export interface IRoutes {
    [key: string]: RouteConfig[];
}
export interface IRouter<V extends Vue> {
    routes?: IRoutes;
    fallback?: RouteConfig;
    option?: RouterOptions;
    navigationGuards?: INavigationGuards<V>;
}
export declare function initRouter<V extends Vue>(vueConstructor: VueConstructor<V>, router: IRouter<V>): Router;
