import type VueRouter from 'vue-router'; import type { Location, RawLocation, Route, NavigationFailure } from 'vue-router'; import type { NuxtError } from './error'; export declare const useRouter: () => VueRouter; export declare const useRoute: () => Route; export interface AddRouteMiddlewareOptions { global?: boolean; } type Without = { [P in Exclude]?: never; }; type XOR = (T | U) extends Object ? (Without & U) | (Without & T) : T | U; export type OpenWindowFeatures = { popup?: boolean; noopener?: boolean; noreferrer?: boolean; } & XOR<{ width?: number; }, { innerWidth?: number; }> & XOR<{ height?: number; }, { innerHeight?: number; }> & XOR<{ left?: number; }, { screenX?: number; }> & XOR<{ top?: number; }, { screenY?: number; }>; export type OpenOptions = { target: '_blank' | '_parent' | '_self' | '_top' | (string & {}); windowFeatures?: OpenWindowFeatures; }; export interface NavigateToOptions { replace?: boolean; redirectCode?: number; external?: boolean; open?: OpenOptions; } export declare const navigateTo: (to: RawLocation | undefined | null, options?: NavigateToOptions) => Promise | false | void | RawLocation | Route; /** This will abort navigation within a Nuxt route middleware handler. */ export declare const abortNavigation: (err?: string | Partial) => boolean; type RouteMiddlewareReturn = void | Error | string | Location | boolean | Route; export interface RouteMiddleware { (to: Route, from: Route): RouteMiddlewareReturn | Promise; } export declare const defineNuxtRouteMiddleware: (middleware: RouteMiddleware) => (ctx: any) => Promise; interface AddRouteMiddleware { (name: string, middleware: RouteMiddleware, options?: AddRouteMiddlewareOptions): void; (middleware: RouteMiddleware): void; } export declare const addRouteMiddleware: AddRouteMiddleware; /** * @internal */ export declare function resolveRouteObject(to: Exclude): string; export {};