import { z } from "zod";
import type { Api, EndpointInputs, MethodByPath, Path } from "./index.js";
type MarkUndefinedableKeysAsOptional<T> = {
    [K in keyof T as undefined extends T[K] ? K : never]?: T[K];
} & {
    [K in keyof T as undefined extends T[K] ? never : K]: T[K];
};
type RmNever<T> = {
    [K in keyof T as T[K] extends never ? never : K]: T[K];
};
type AcceptedEndpointInputs<A extends Api, M extends MethodByPath<A, P>, P extends Path<A>> = {
    [K in keyof EndpointInputs<A, M, P>]: EndpointInputs<A, M, P>[K] extends z.ZodType ? z.input<EndpointInputs<A, M, P>[K]> : never;
};
type ClientConfig<A extends Api, M extends MethodByPath<A, P>, P extends Path<A>> = MarkUndefinedableKeysAsOptional<RmNever<AcceptedEndpointInputs<A, M, P>>> & {
    header?: {
        "Authorization"?: string;
        "Content-Type"?: string;
    };
    responseType?: "text" | "json" | "blob" | "arraybuffer" | "stream" | "document";
};
export type ConfigParam<A extends Api, M extends MethodByPath<A, P>, P extends Path<A>> = Partial<ClientConfig<A, M, P>> extends ClientConfig<A, M, P> ? [config?: ClientConfig<A, M, P>] : [config: ClientConfig<A, M, P>];
export {};
//# sourceMappingURL=client.d.ts.map