import { FetchQueryOptions, InfiniteData, MutationKey, QueryClient, QueryFunctionContext, QueryKey, UseInfiniteQueryOptions, UseInfiniteQueryResult, UseMutationOptions, UseMutationResult, UseQueryOptions, UseQueryResult } from "@tanstack/react-query";
import type { EndpointMethodMap, EndpointInputParameters, EndpointOutputResponse, Fetcher, HttpMethod, MaybeOptionalArg, MaybeOptionalOptions } from "./client.types.js";
import type { DeleteEndpoints, GetEndpoints, PatchEndpoints, PostEndpoints, PutEndpoints } from "./contract.js";
export declare class RiseApiClient {
    #private;
    fetcher: Fetcher;
    constructor(fetcher: Fetcher);
    setBaseUrl(baseUrl: string): this;
    setEnableParsing(enable: boolean): this;
    get<Path extends keyof GetEndpoints>(path: Path, ...params: MaybeOptionalArg<GetEndpoints[Path]["parameters"]>): Promise<GetEndpoints[Path]["response"]>;
    post<Path extends keyof PostEndpoints>(path: Path, ...params: MaybeOptionalArg<PostEndpoints[Path]["parameters"]>): Promise<PostEndpoints[Path]["response"]>;
    patch<Path extends keyof PatchEndpoints>(path: Path, ...params: MaybeOptionalArg<PatchEndpoints[Path]["parameters"]>): Promise<PatchEndpoints[Path]["response"]>;
    delete<Path extends keyof DeleteEndpoints>(path: Path, ...params: MaybeOptionalArg<DeleteEndpoints[Path]["parameters"]>): Promise<DeleteEndpoints[Path]["response"]>;
    put<Path extends keyof PutEndpoints>(path: Path, ...params: MaybeOptionalArg<PutEndpoints[Path]["parameters"]>): Promise<PutEndpoints[Path]["response"]>;
}
export declare function createRiseApiClient(fetcher: Fetcher): RiseApiClient;
export declare class RiseApiHooks {
    #private;
    constructor(client: RiseApiClient);
    getCacheKey<Method extends HttpMethod, Path extends keyof EndpointMethodMap[Method]>(method: Method, path: Path, ...params: MaybeOptionalArg<EndpointInputParameters<EndpointMethodMap[Method][Path]>>): readonly [string, ...unknown[]];
    setCachedData<Method extends HttpMethod, Path extends keyof EndpointMethodMap[Method]>(queryClient: QueryClient, method: Method, path: Path, ...options: MaybeOptionalOptions<EndpointOutputResponse<EndpointMethodMap[Method][Path]>, EndpointInputParameters<EndpointMethodMap[Method][Path]>>): void;
    useSetCachedData<Method extends HttpMethod, Path extends keyof EndpointMethodMap[Method]>(method: Method, path: Path, ...options: MaybeOptionalOptions<EndpointOutputResponse<EndpointMethodMap[Method][Path]>, EndpointInputParameters<EndpointMethodMap[Method][Path]>>): void;
    getCachedData<Method extends HttpMethod, Path extends keyof EndpointMethodMap[Method]>(queryClient: QueryClient, method: Method, path: Path, ...params: MaybeOptionalArg<EndpointInputParameters<EndpointMethodMap[Method][Path]>>): EndpointOutputResponse<EndpointMethodMap[Method][Path]> | undefined;
    useGetCachedData<Method extends HttpMethod, Path extends keyof EndpointMethodMap[Method]>(method: Method, path: Path, ...params: MaybeOptionalArg<EndpointInputParameters<EndpointMethodMap[Method][Path]>>): EndpointOutputResponse<EndpointMethodMap[Method][Path]> | undefined;
    prefetchData<Path extends keyof GetEndpoints>(queryClient: QueryClient, path: Path, ...rest: MaybeOptionalOptions<GetEndpoints[Path]["parameters"], FetchQueryOptions>): void;
    usePrefetchData<Path extends keyof GetEndpoints>(path: Path, ...rest: MaybeOptionalOptions<GetEndpoints[Path]["parameters"], FetchQueryOptions>): void;
    useGet<Path extends keyof GetEndpoints, TQueryFnData extends GetEndpoints[Path]["response"], TError = unknown, TData = TQueryFnData>(path: Path, ...rest: MaybeOptionalOptions<GetEndpoints[Path]["parameters"], Omit<UseQueryOptions<TQueryFnData, TError, TData>, "queryKey" | "queryFn">>): UseQueryResult<TData, TError> & {
        invalidate: () => Promise<void>;
        queryKey: QueryKey;
    };
    useInfiniteGet<Path extends keyof GetEndpoints, TData extends GetEndpoints[Path]["response"], TError = Error>(path: Path, configMapper: (context: QueryFunctionContext<QueryKey>) => GetEndpoints[Path]["parameters"], options: Omit<UseInfiniteQueryOptions<TData, TError>, "queryKey" | "queryFn">): UseInfiniteQueryResult<InfiniteData<TData>, TError> & {
        invalidate: () => Promise<void>;
        queryKey: QueryKey;
    };
    usePost<Path extends keyof PostEndpoints, TVariables extends PostEndpoints[Path]["parameters"], TData extends PostEndpoints[Path]["response"], TError = unknown>(path: Path, options?: Omit<UseMutationOptions<TData, TError, TVariables>, "mutationKey" | "mutationFn">): UseMutationResult<TData, TError, TVariables> & {
        mutationKey: MutationKey;
    };
    usePatch<Path extends keyof PatchEndpoints, TVariables extends PatchEndpoints[Path]["parameters"], TData extends PatchEndpoints[Path]["response"], TError = unknown>(path: Path, options?: Omit<UseMutationOptions<TData, TError, TVariables>, "mutationKey" | "mutationFn">): UseMutationResult<TData, TError, TVariables> & {
        mutationKey: MutationKey;
    };
    useDelete<Path extends keyof DeleteEndpoints, TVariables extends DeleteEndpoints[Path]["parameters"], TData extends DeleteEndpoints[Path]["response"], TError = unknown>(path: Path, options?: Omit<UseMutationOptions<TData, TError, TVariables>, "mutationKey" | "mutationFn">): UseMutationResult<TData, TError, TVariables> & {
        mutationKey: MutationKey;
    };
    usePut<Path extends keyof PutEndpoints, TVariables extends PutEndpoints[Path]["parameters"], TData extends PutEndpoints[Path]["response"], TError = unknown>(path: Path, options?: Omit<UseMutationOptions<TData, TError, TVariables>, "mutationKey" | "mutationFn">): UseMutationResult<TData, TError, TVariables> & {
        mutationKey: MutationKey;
    };
}
export declare function createRiseApiHooks(client: RiseApiClient): RiseApiHooks;
//# sourceMappingURL=client.d.ts.map