import type { PropType, Ref, SetupContext } from 'vue'; // @ts-ignore import type { useLink as _useLink, NavigationGuardReturn, RouteLocation, RouteLocationNormalizedLoaded, RouteLocationRaw, Router } from 'vue-router'; import type { EventProp } from '../util/index.js'; export declare function useRoute(): Ref; export declare function useRouter(): Router | undefined; export interface LinkProps { href: string | undefined; replace: boolean | undefined; to: RouteLocationRaw | undefined; exact: boolean | undefined; disabled: boolean | undefined; } export interface LinkListeners { onClick?: EventProp | undefined; onClickOnce?: EventProp | undefined; } export interface UseLink extends Omit>, 'href' | 'route' | 'navigate'> { isLink: Readonly>; isRouterLink: Readonly>; isClickable: Readonly>; href: Ref; linkProps: Record; route: Readonly>; navigate: Readonly['navigate'] | undefined>>; } export declare function useLink(props: LinkProps & LinkListeners, attrs: SetupContext['attrs']): UseLink; export declare const makeRouterProps: (defaults?: Defaults | undefined) => { href: unknown extends Defaults["href"] ? StringConstructor : { type: PropType; default: unknown extends Defaults["href"] ? string : string | Defaults["href"]; }; replace: unknown extends Defaults["replace"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["replace"] ? boolean : boolean | Defaults["replace"]; }; to: unknown extends Defaults["to"] ? PropType : { type: PropType; default: unknown extends Defaults["to"] ? string | import("vue-router").RouteLocationAsPathGeneric | import("vue-router").RouteLocationAsRelativeGeneric : Defaults["to"] | NonNullable; }; exact: unknown extends Defaults["exact"] ? BooleanConstructor : { type: PropType; default: unknown extends Defaults["exact"] ? boolean : boolean | Defaults["exact"]; }; }; export declare function useBackButton(router: Router | undefined, cb: () => NavigationGuardReturn): void;