import { Router } from 'vue-router'; import { RoutiderLocation, RoutiderLocationOfNames } from './route/location'; import { RoutiderOptions, RouteNames, FlatRoutes } from './options/options'; import { RoutiderRouter, RoutiderRouteLocation } from './router/router'; import { RoutiderNavigationGuard } from './router/navigationGuard'; declare const validTypeLocation: unique symbol; export declare type ValidTypeLocation = typeof validTypeLocation; export interface Routider { rawRouter: Router; router: RoutiderRouter; useRouter: () => RoutiderRouter; useRoute: > | RouteNames>[] | null>(name: N) => N extends null ? RoutiderLocation>> : RoutiderLocationOfNames, Exclude>; onBeforeRouteLeave: (leaveGuard: RoutiderNavigationGuard>) => void; onBeforeRouteUpdate: (updateGuard: RoutiderNavigationGuard>) => void; ensureLocationType>>(location: RoutiderRouteLocation, N>): RoutiderRouteLocation, N> & ValidTypeLocation; } export declare const createRoutider: (options: O) => Routider; export {};