import VueRouter, { NavigationGuard, Route, RouterOptions as RawRouterOptions, RouteConfig as RouteRecordRaw } from 'vue-router';
export type { NavigationGuard, RouteRecordRaw };
export type { RouteMeta, RouteRecord, RedirectOption as RouteRecordRedirectOption, RawLocation as RouteLocationRaw, } from 'vue-router';
export declare type RouterScrollBehavior = RawRouterOptions['scrollBehavior'];
export declare type RouteLocationNormalized = Route;
export declare type RouteLocationNormalizedLoaded = Route;
export declare type RouteRecordName = string | symbol;
export interface RouterOptions extends RawRouterOptions {
    routes: RouteRecordRaw[];
    scrollBehavior?: RouterScrollBehavior;
}
export interface Router extends VueRouter {
    isReady(): Promise<void>;
    /** @deprecated */
    app: VueRouter['app'];
    /** @deprecated use `currentRoute.matched` instead */
    getMatchedComponents: VueRouter['getMatchedComponents'];
    /** @deprecated use `isReady` instead */
    onReady: VueRouter['onReady'];
}
export declare function createRouter(options: RouterOptions): Router;
export declare function useRouter(): Router;
export declare function useRoute(): RouteLocationNormalizedLoaded;
export declare function onBeforeRouteLeave(leaveGuard: NavigationGuard): void;
export declare function onBeforeRouteUpdate(updateGuard: NavigationGuard): void;
