import { type BodyCodec } from "../codecs/index.ts"; import type { RouteDeclaration } from "../contract/contract.ts"; import type { GroupedRequestInput } from "./requestInput.ts"; import type { ClientRequestRoute } from "./requestRoute.ts"; import type { ApiClientFetchOptions, FetchArgs, FetchLike, GetHeadersFn, NextFetchTagsOptions } from "./types.ts"; export declare const createRequestSignal: (signal: RequestInit["signal"], timeoutMs: number | undefined) => { signal: AbortSignal; cleanup: () => void; } | null; export declare const takesRequestInput: (route: ClientRequestRoute) => boolean; export declare const assertNoContentTypeHeader: (headers: Record) => void; export declare const constructBaseRequest: (baseUrl: string, route: ClientRequestRoute, args: GroupedRequestInput | undefined, selectedContentType?: string) => { url: string; body?: unknown; contentType?: string; headers?: Record; }; export type ExecuteRequestOptions = { baseUrl: string; bodyCodecs?: readonly BodyCodec[]; fetch?: FetchLike; fetchOptions?: ApiClientFetchOptions; getGlobalHeaders?: GetHeadersFn; nextFetchTags?: NextFetchTagsOptions; timeoutMs?: number; }; export declare const executeRequest: (route: E | ClientRequestRoute, routeIdentity: readonly string[] | Pick, args: FetchArgs | unknown[], options: ExecuteRequestOptions, tagRequest?: GroupedRequestInput) => Promise;