interface NavigateOptions {
    scroll?: boolean;
}
interface PrefetchOptions {
    kind?: unknown;
}
interface RouterStub {
    push: (href: string, options?: NavigateOptions) => void;
    replace: (href: string, options?: NavigateOptions) => void;
    back: () => void;
    forward: () => void;
    refresh: () => void;
    prefetch: (href: string, options?: PrefetchOptions) => void;
}
export interface NavigationImpl {
    useRouter: () => RouterStub;
    usePathname: () => string;
    useSearchParams: () => URLSearchParams;
    useParams: <T extends Record<string, string | string[]>>() => T;
    redirect: (url: string, type?: unknown) => never;
    permanentRedirect: (url: string, type?: unknown) => never;
    notFound: () => never;
}
/**
 * Register real `next/navigation` exports. Merges with any prior
 * registration so partial-overrides are safe. Call ONCE at app init
 * in a Next.js host.
 */
export declare function registerNavigation(nav: Partial<NavigationImpl>): void;
export declare function useRouter(): RouterStub;
export declare function usePathname(): string;
export declare function useSearchParams(): URLSearchParams;
export declare function useParams<T extends Record<string, string | string[]>>(): T;
export declare function redirect(url: string, type?: unknown): never;
export declare function permanentRedirect(url: string, type?: unknown): never;
export declare function notFound(): never;
/** Match Next's RedirectType enum surface for code that imports it. */
export declare const RedirectType: {
    push: "push";
    replace: "replace";
};
/** Match Next's ServerInsertedHTMLContext surface — non-functional in
 *  the embed environment but importable so consumers don't crash. */
export declare const ServerInsertedHTMLContext: any;
export {};
//# sourceMappingURL=next-navigation.d.ts.map