import * as react_jsx_runtime from 'react/jsx-runtime';
import { ReactNode, Ref, AnchorHTMLAttributes } from 'react';

type LinkProps = {
    href: string;
    children?: ReactNode;
    ref?: Ref<HTMLAnchorElement>;
} & Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'href'>;
type LinkComponent = React.FC<LinkProps>;
interface RouterContextValue {
    pathname: string;
    navigate: (href: string) => void;
    replace: (href: string) => void;
    back: () => void;
    forward: () => void;
    prefetch: (href: string) => void;
    Link: LinkComponent;
}
type RouterProviderProps = {
    children: ReactNode;
    value: RouterContextValue;
};
declare function RouterProvider({ children, value }: RouterProviderProps): react_jsx_runtime.JSX.Element;
declare function useRouter(): {
    push: (href: string) => void;
    replace: (href: string) => void;
    back: () => void;
    forward: () => void;
    refresh: () => void;
    prefetch: (href: string) => void;
};
declare function usePathname(): string;
declare function useLink(): LinkComponent;

export { type LinkComponent, type LinkProps, type RouterContextValue, RouterProvider, type RouterProviderProps, useLink, usePathname, useRouter };
