import type { ComputedRef, PropType, Ref, SetupContext } from 'vue';
import type { NavigationGuardNext, RouteLocationNormalizedLoaded, RouteLocationRaw, Router, RouterLinkProps, useLink as _useLink } from 'vue-router';
export declare function useRoute(): Ref<RouteLocationNormalizedLoaded | undefined>;
export declare function useRouter(): Router | undefined;
export interface LinkProps extends Partial<RouterLinkProps> {
    href?: string;
}
interface UseLink extends Omit<Partial<ReturnType<typeof _useLink>>, 'href'> {
    isLink: ComputedRef<boolean>;
    isClickable: ComputedRef<boolean>;
    href: Ref<string | undefined>;
}
export declare function useRouterHistory(): {
    isWebHashHistory: ComputedRef<boolean | undefined>;
};
export declare function useLink(props: LinkProps, attrs: SetupContext['attrs']): UseLink;
export declare const makeRouterProps: <Defaults extends {
    href?: unknown;
    replace?: unknown;
    to?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
    href: unknown extends Defaults["href"] ? StringConstructor : {
        type: PropType<unknown extends Defaults["href"] ? string : string | Defaults["href"]>;
        default: unknown extends Defaults["href"] ? string : string | Defaults["href"];
    };
    replace: unknown extends Defaults["replace"] ? BooleanConstructor : {
        type: PropType<unknown extends Defaults["replace"] ? boolean : boolean | Defaults["replace"]>;
        default: unknown extends Defaults["replace"] ? boolean : boolean | Defaults["replace"];
    };
    to: unknown extends Defaults["to"] ? PropType<RouteLocationRaw> : {
        type: PropType<unknown extends Defaults["to"] ? RouteLocationRaw : Defaults["to"] | NonNullable<RouteLocationRaw>>;
        default: unknown extends Defaults["to"] ? RouteLocationRaw : Defaults["to"] | NonNullable<RouteLocationRaw>;
    };
};
export declare function useBackButton(cb: (next: NavigationGuardNext) => void): void;
export {};
