import { RerouteRule } from './with-rerouting'; export declare type HttpClientConfig = Omit & { params?: string | Record | string[][] | URLSearchParams; inputTransform?: (data: any) => BodyInit | null | undefined; outputTransform?: (body: Body) => Promise; error?: (err: unknown) => Promise; raw?: boolean; downloadAsFile?: boolean; }; declare type GetHandler = (url: string, config?: HttpClientConfig) => Promise>; declare type FetchHandler = (url: string, config?: HttpClientConfig & { method?: HttpMethods; }) => Promise; declare type WithBodyHandler = (url: string, data: D, config?: HttpClientConfig) => Promise>; declare type PostMultipartHandler = (url: string, data: FormData, config?: HttpClientConfig) => Promise>; declare type PatchMultipartHandler = (url: string, data: FormData, config?: HttpClientConfig) => Promise>; export declare type HttpMethods = 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE'; export interface HttpClientSupport extends Element { proxyWindow?: Window; basePath?: string; headers?: HeadersInit; credentials?: RequestCredentials; reroutingRules?: RerouteRule[]; } export declare type HttpClientResponse = Response & { data?: T; }; export declare type HttpClientInstance = { get: GetHandler; post: WithBodyHandler; put: WithBodyHandler; patch: WithBodyHandler; delete: WithBodyHandler; postMultipart: PostMultipartHandler; patchMultipart: PatchMultipartHandler; fetch: FetchHandler; }; export declare function createFetchHttpClient(this: HttpClientSupport): HttpClientInstance; export type { RerouteRule };