import type { ErrorMappings, PrimitiveTypesForDeserialization, RequestAdapter, SendMethods } from "./requestAdapter.js";
import { type RequestInformationSetContent } from "./requestInformation.js";
import type { ModelSerializerFunction, Parsable, ParsableFactory } from "./serialization/index.js";
export declare const apiClientProxifier: <T extends object>(requestAdapter: RequestAdapter, pathParameters: Record<string, unknown>, navigationMetadata?: Record<string, NavigationMetadata>, requestsMetadata?: RequestsMetadata) => T;
export interface RequestMetadata {
    requestBodyContentType?: string;
    responseBodyContentType?: string;
    errorMappings?: ErrorMappings;
    adapterMethodName?: SendMethods;
    responseBodyFactory?: ParsableFactory<Parsable> | PrimitiveTypesForDeserialization;
    requestBodySerializer?: ModelSerializerFunction<Parsable> | PrimitiveTypesForDeserialization;
    requestInformationContentSetMethod?: keyof RequestInformationSetContent;
    queryParametersMapper?: Record<string, string>;
    uriTemplate: string;
    enumObject?: EnumObject;
}
export interface RequestsMetadata {
    delete?: RequestMetadata;
    get?: RequestMetadata;
    head?: RequestMetadata;
    options?: RequestMetadata;
    patch?: RequestMetadata;
    post?: RequestMetadata;
    put?: RequestMetadata;
}
type KeysOfRequestsMetadata = keyof RequestsMetadata;
export interface NavigationMetadata {
    requestsMetadata?: RequestsMetadata;
    navigationMetadata?: Record<string, NavigationMetadata>;
    pathParametersMappings?: string[];
}
type EnumObject<T extends Record<string, unknown> = Record<string, unknown>> = T;
export type KeysToExcludeForNavigationMetadata = KeysOfRequestsMetadata | "toDeleteRequestInformation" | "toGetRequestInformation" | "toHeadRequestInformation" | "toOptionsRequestInformation" | "toPatchRequestInformation" | "toPostRequestInformation" | "toPutRequestInformation" | "withUrl";
export {};
//# sourceMappingURL=apiClientProxifier.d.ts.map