import { useQueryProps } from '../../use-query/index.js';
export type DeepPartial<T> = {
    [P in keyof T]?: T[P] extends object ? T[P] extends Array<infer U> ? Array<DeepPartial<U>> : DeepPartial<T[P]> : T[P];
};
export declare function createClient<Swagger>({ basePath, customBody, customHeaders, }: {
    basePath?: string;
    customBody?: () => Record<string, string>;
    customHeaders?: () => Record<string, string>;
}): {
    client: <Url extends keyof Swagger, Method extends keyof Swagger[Url]>({ url, body, method, headers, arrayFormat, }: {
        url: Url;
        server?: boolean;
        method: Method;
        signal?: AbortSignal;
        headers?: Record<string, string>;
        arrayFormat?: "repeat" | "brackets";
        body?: DeepPartial<Omit<Swagger[Url][Method], "result">>;
    }) => Promise<Swagger[Url][Method] extends {
        result: infer R;
    } ? R : never>;
    useSwagger: <Url extends keyof Swagger, Method extends keyof Swagger[Url]>({ url, method, body, ...rest }: {
        url: Url;
        method: Method;
        body?: DeepPartial<Omit<Swagger[Url][Method], "result">>;
    } & Partial<Omit<useQueryProps<any>, "queryFn">>) => Required<import("../../use-query/index.js").QueryState<Awaited<Swagger[Url][Method] extends {
        result: infer R;
    } ? R : never>>>;
};
