///
import NextLink from 'next/link';
import type { UrlObject } from 'url';
import { type ComponentProps } from 'react';
import { WaysPathRoutingConfig, localizePathname, stripLocalePrefix } from '@18ways/core/i18n-shared';
export { localizePathname, stripLocalePrefix };
type HrefInput = string | UrlObject;
export declare const useUnlocalizedPathname: (options?: {
pathRouting?: WaysPathRoutingConfig;
}) => string;
export declare const useLocalizedHref: (options?: {
pathRouting?: WaysPathRoutingConfig;
}) => ((href: string, localeOverride?: string | false) => string);
export type SetLocaleOptions = {
preserveSearch?: boolean;
preserveHash?: boolean;
};
export type UseLocaleOptions = {
pathRouting?: WaysPathRoutingConfig;
};
export declare const useLocale: (options?: UseLocaleOptions) => {
locale: string;
setLocale: (nextLocale: string, options?: SetLocaleOptions) => void;
};
type WaysNavigationOptions = {
scroll?: boolean;
locale?: string | false;
};
export declare const useRouter: () => {
push: (href: HrefInput, options?: WaysNavigationOptions) => void;
replace: (href: HrefInput, options?: WaysNavigationOptions) => void;
refresh: () => void;
back: () => void;
forward: () => void;
prefetch: (href: string) => void | Promise;
};
export type WaysLinkProps = Omit, 'locale'> & {
locale?: string | false;
};
export declare function Link({ href, locale, ...props }: WaysLinkProps): import("react").FunctionComponentElement, keyof import("next/link").LinkProps> & import("next/link").LinkProps & {
children?: React.ReactNode | undefined;
} & import("react").RefAttributes>;