import * as vue from 'vue';
import { RouteLocationRaw, Router, RouterLinkProps } from 'vue-router';

declare function preloadRouteComponents(to: RouteLocationRaw, router?: Router & {
    _routePreloaded?: Set<string>;
    _preloadPromises?: Array<Promise<unknown>>;
}): Promise<void | undefined>;

interface PreloadRouterLinkProps extends Omit<RouterLinkProps, 'to'> {
    to: RouteLocationRaw;
    prefetch?: boolean;
    prefetchOn?: 'visibility' | 'interaction';
    prefetchedClass?: string;
}
declare const _default: vue.DefineComponent<{
    to: RouteLocationRaw;
    prefetch?: boolean;
    prefetchOn?: "visibility" | "interaction";
    prefetchedClass?: string;
    custom?: boolean;
    activeClass?: string;
    exactActiveClass?: string;
    ariaCurrentValue?: "page" | "step" | "location" | "date" | "time" | "true" | "false";
    viewTransition?: boolean;
    replace?: boolean;
}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{
    to: RouteLocationRaw;
    prefetch?: boolean;
    prefetchOn?: "visibility" | "interaction";
    prefetchedClass?: string;
    custom?: boolean;
    activeClass?: string;
    exactActiveClass?: string;
    ariaCurrentValue?: "page" | "step" | "location" | "date" | "time" | "true" | "false";
    viewTransition?: boolean;
    replace?: boolean;
}> & Readonly<{}>, {
    prefetch: boolean;
    prefetchOn: "visibility" | "interaction" | undefined;
    prefetchedClass: string;
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;

export { type PreloadRouterLinkProps, _default as default, preloadRouteComponents };
