import * as actual from 'next/dist/client/components/navigation.js';
export * from 'next/dist/client/components/navigation.js';
import { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';
import { Mock } from 'storybook/test';

declare const createNavigation: (overrides?: Record<string, (...params: unknown[]) => unknown>) => {
    push: Mock;
    replace: Mock;
    forward: Mock;
    back: Mock;
    prefetch: Mock;
    refresh: Mock;
};
declare const getRouter: () => {
    push: Mock;
    replace: Mock;
    forward: Mock;
    back: Mock;
    prefetch: Mock;
    refresh: Mock;
};

declare const redirect: Mock<(url: string, type?: actual.RedirectType) => never>;
declare const permanentRedirect: Mock<(url: string, type?: actual.RedirectType) => never>;
declare const useSearchParams: Mock<() => actual.ReadonlyURLSearchParams>;
declare const usePathname: Mock<() => string>;
declare const useSelectedLayoutSegment: Mock<(parallelRouteKey?: string) => string | null>;
declare const useSelectedLayoutSegments: Mock<(parallelRouteKey?: string) => string[]>;
declare const useRouter: Mock<() => AppRouterInstance>;
declare const useServerInsertedHTML: Mock<(callback: () => React.ReactNode) => void>;
declare const notFound: Mock<() => never>;
interface Params {
    [key: string]: string | string[];
}
declare const useParams: Mock<() => Params>;

export { createNavigation, getRouter, notFound, permanentRedirect, redirect, useParams, usePathname, useRouter, useSearchParams, useSelectedLayoutSegment, useSelectedLayoutSegments, useServerInsertedHTML };
