import type { PropType } from 'vue';
import type { RouteParams, RouteParamsFormats, Routes } from '../common.ts';
/**
 * Parameters required for route navigation with proper type safety.
 */
export type LinkParams<Route extends keyof Routes> = RouteParams<Route>;
/**
 * Type-safe Link component for Inertia.js navigation.
 *
 * Supports both route-based navigation with automatic URL resolution
 * and direct href navigation for maximum flexibility.
 *
 * @example
 * ```vue
 * <!-- Route-based navigation -->
 * <Link route="users.index">Users</Link>
 * <Link route="users.show" :params="{ id: 1 }">View User</Link>
 *
 * <!-- Direct href navigation -->
 * <Link href="/about">About</Link>
 * <Link href="/logout" method="post">Logout</Link>
 * ```
 */
export declare const Link: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    route: {
        type: PropType<keyof Routes>;
        required: false;
    };
    params: {
        type: PropType<RouteParamsFormats<keyof Routes>>;
        required: false;
    };
    href: {
        type: StringConstructor;
        required: false;
    };
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
    [key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    route: {
        type: PropType<keyof Routes>;
        required: false;
    };
    params: {
        type: PropType<RouteParamsFormats<keyof Routes>>;
        required: false;
    };
    href: {
        type: StringConstructor;
        required: false;
    };
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
