import type { FormDataConvertible, Method, QueryStringArrayFormatOption, RequestPayload, UrlMethodPair, VisitOptions } from './types';
export declare function hrefToUrl(href: string | URL): URL;
export declare const transformUrlAndData: (href: string | URL, data: RequestPayload, method: Method, forceFormData: VisitOptions["forceFormData"], queryStringArrayFormat: VisitOptions["queryStringArrayFormat"]) => [URL, RequestPayload];
type MergeDataIntoQueryStringDataReturnType<T extends RequestPayload> = T extends Record<string, FormDataConvertible> ? Record<string, FormDataConvertible> : RequestPayload;
export declare function mergeDataIntoQueryString<T extends RequestPayload>(method: Method, href: URL | string, data: T, qsArrayFormat?: QueryStringArrayFormatOption): [string, MergeDataIntoQueryStringDataReturnType<T>];
export declare function urlWithoutHash(url: URL | Location): URL;
export declare const setHashIfSameUrl: (originUrl: URL | Location, destinationUrl: URL | Location) => void;
export declare const isSameUrlWithoutHash: (url1: URL | Location, url2: URL | Location) => boolean;
export declare const isSameUrlWithoutQueryOrHash: (url1: URL | Location, url2: URL | Location) => boolean;
export declare function isUrlMethodPair(href: unknown): href is UrlMethodPair;
export declare function urlHasProtocol(url: string): boolean;
export declare function urlToString(url: URL | string, absolute: boolean): string;
export {};
