import type { Component, InjectionKey } from 'vue';
import { PageData } from '../../../types/shared';
export interface Route {
    path: string;
    data: PageData;
    component: Component | null;
}
export interface Router {
    route: Route;
    go: (href?: string) => Promise<void>;
}
export declare const RouterSymbol: InjectionKey<Router>;
interface PageModule {
    __pageData: string;
    default: Component;
}
export declare function createRouter(loadPageModule: (path: string) => PageModule | Promise<PageModule>, fallbackComponent?: Component): Router;
export declare function useRouter(): Router;
export declare function useRoute(): Route;
export {};
