import { UseQueryOptions, SkipToken, QueryClient, UseQueryResult, UseSuspenseQueryOptions, UseSuspenseQueryResult, UseInfiniteQueryOptions, InfiniteData, UseInfiniteQueryResult, UseMutationOptions, UseMutationResult } from '@tanstack/react-query'; import { MaybeOptionalInit, FetchResponse, Client } from 'openapi-fetch'; import { MediaType, HttpMethod, PathsWithMethod, RequiredKeysOf } from 'openapi-typescript-helpers'; type InferSelectReturnType = TSelect extends (data: TData) => infer R ? R : TData; type InitWithUnknowns = Init & { [key: string]: unknown; }; type QueryKey>, Method extends HttpMethod, Path extends PathsWithMethod, Init = MaybeOptionalInit> = Init extends undefined ? readonly [Method, Path] : readonly [Method, Path, Init]; type QueryOptionsFunction>, Media extends MediaType> = , Init extends MaybeOptionalInit, Response extends Required>, Options extends Omit, QueryKey>, "queryKey" | "queryFn">>(method: Method, path: Path, ...[init, options]: RequiredKeysOf extends never ? [InitWithUnknowns?, Options?] : [InitWithUnknowns, Options?]) => NoInfer, QueryKey>, "queryFn"> & { queryFn: Exclude, QueryKey>["queryFn"], SkipToken | undefined>; }>; type UseQueryMethod>, Media extends MediaType> = , Init extends MaybeOptionalInit, Response extends Required>, Options extends Omit, QueryKey>, "queryKey" | "queryFn">>(method: Method, url: Path, ...[init, options, queryClient]: RequiredKeysOf extends never ? [InitWithUnknowns?, Options?, QueryClient?] : [InitWithUnknowns, Options?, QueryClient?]) => UseQueryResult, Response["error"]>; type UseInfiniteQueryMethod>, Media extends MediaType> = , Init extends MaybeOptionalInit, Response extends Required>, Options extends Omit, Options["select"]>, QueryKey, unknown>, "queryKey" | "queryFn"> & { pageParamName?: string; }>(method: Method, url: Path, init: InitWithUnknowns, options: Options, queryClient?: QueryClient) => UseInfiniteQueryResult, Options["select"]>, Response["error"]>; type UseSuspenseQueryMethod>, Media extends MediaType> = , Init extends MaybeOptionalInit, Response extends Required>, Options extends Omit, QueryKey>, "queryKey" | "queryFn">>(method: Method, url: Path, ...[init, options, queryClient]: RequiredKeysOf extends never ? [InitWithUnknowns?, Options?, QueryClient?] : [InitWithUnknowns, Options?, QueryClient?]) => UseSuspenseQueryResult, Response["error"]>; type UseMutationMethod>, Media extends MediaType> = , Init extends MaybeOptionalInit, Response extends Required>, TOnMutateResult = unknown>(method: Method, url: Path, options?: Omit, "mutationKey" | "mutationFn">, queryClient?: QueryClient) => UseMutationResult; interface OpenapiQueryClient { queryOptions: QueryOptionsFunction; useQuery: UseQueryMethod; useSuspenseQuery: UseSuspenseQueryMethod; useInfiniteQuery: UseInfiniteQueryMethod; useMutation: UseMutationMethod; } type MethodResponse, Method extends HttpMethod, Path extends CreatedClient extends OpenapiQueryClient ? PathsWithMethod : never, Options = object> = CreatedClient extends OpenapiQueryClient ? NonNullable["data"]> : never; declare function createClient(client: Client): OpenapiQueryClient; export = createClient; export type { MethodResponse, OpenapiQueryClient, QueryKey, QueryOptionsFunction, UseInfiniteQueryMethod, UseMutationMethod, UseQueryMethod, UseSuspenseQueryMethod };