import type { Readable } from "svelte/store"; import type { MutateOptions, QueryObserverOptions, QueryObserverResult, QueryFunction, QueryKey, MutationStatus, MutationKey, MutationFunction, InfiniteQueryObserverOptions, InfiniteQueryObserverResult } from "./queryCore"; import { RetryDelayValue, RetryValue } from "./queryCore/core/retryer"; export interface UseQueryStoreResult extends Readable> { setEnabled(enabled: boolean): void; setOptions: { (options: UseQueryOptions): any; (queryKey: TQueryKey, options?: UseQueryOptions): any; (queryKey: TQueryKey, queryFn: QueryFunction, options?: UseQueryOptions): any; }; updateOptions(options: Partial>): void; } export interface UseQueryOptions extends QueryObserverOptions { } export declare type UseQueryResult = QueryObserverResult; export interface UseInfiniteQueryStoreResult extends Readable> { setEnabled(enabled: boolean): void; setOptions: { (options: UseInfiniteQueryOptions): any; (queryKey: TQueryKey, options?: UseInfiniteQueryOptions): any; (queryKey: TQueryKey, queryFn: QueryFunction, options?: UseInfiniteQueryOptions): any; }; updateOptions(options: Partial>): void; } export interface UseInfiniteQueryOptions extends InfiniteQueryObserverOptions { } export declare type UseInfiniteQueryResult = InfiniteQueryObserverResult; declare type MAXIMUM_DEPTH = 20; declare type GetOptions = T extends { queryFnData: infer TQueryFnData; error?: infer TError; data: infer TData; } ? UseQueryOptions : T extends { queryFnData: infer TQueryFnData; error?: infer TError; } ? UseQueryOptions : T extends { data: infer TData; error?: infer TError; } ? UseQueryOptions : T extends [infer TQueryFnData, infer TError, infer TData] ? UseQueryOptions : T extends [infer TQueryFnData, infer TError] ? UseQueryOptions : T extends [infer TQueryFnData] ? UseQueryOptions : T extends { queryFn?: QueryFunction; select: (data: any) => infer TData; } ? UseQueryOptions : T extends { queryFn?: QueryFunction; } ? UseQueryOptions : UseQueryOptions; declare type GetResults = T extends { queryFnData: any; error?: infer TError; data: infer TData; } ? UseQueryResult : T extends { queryFnData: infer TQueryFnData; error?: infer TError; } ? UseQueryResult : T extends { data: infer TData; error?: infer TError; } ? UseQueryResult : T extends [any, infer TError, infer TData] ? UseQueryResult : T extends [infer TQueryFnData, infer TError] ? UseQueryResult : T extends [infer TQueryFnData] ? UseQueryResult : T extends { queryFn?: QueryFunction; select: (data: any) => infer TData; } ? UseQueryResult : T extends { queryFn?: QueryFunction; } ? UseQueryResult : UseQueryResult; /** * QueriesOptions reducer recursively unwraps function arguments to infer/enforce type param */ export declare type QueriesOptions = []> = Depth['length'] extends MAXIMUM_DEPTH ? UseQueryOptions[] : T extends [] ? [] : T extends [infer Head] ? [...Result, GetOptions] : T extends [infer Head, ...infer Tail] ? QueriesOptions<[...Tail], [...Result, GetOptions], [...Depth, 1]> : unknown[] extends T ? T : T extends UseQueryOptions[] ? UseQueryOptions[] : UseQueryOptions[]; /** * QueriesResults reducer recursively maps type param to results */ export declare type QueriesResults = []> = Depth['length'] extends MAXIMUM_DEPTH ? UseQueryResult[] : T extends [] ? [] : T extends [infer Head] ? [...Result, GetResults] : T extends [infer Head, ...infer Tail] ? QueriesResults<[...Tail], [...Result, GetResults], [...Depth, 1]> : T extends UseQueryOptions[] ? UseQueryResult[] : UseQueryResult[]; export declare type UseQueriesResult = QueriesResults; export interface UseQueriesStoreResult extends Readable> { setQueries(newQueries: readonly [...QueriesOptions]): void; } export interface MutationStoreResult extends Readable> { setOptions: { (options: UseMutationOptions): any; (mutationKey: MutationKey, options?: UseMutationOptions): any; (mutationKey: MutationKey, mutationFn?: MutationFunction, options?: UseMutationOptions): any; (mutationFn?: MutationFunction, options?: UseMutationOptions): any; }; } export interface UseMutationOptions { mutationKey?: string | unknown[]; onMutate?: (variables: TVariables) => Promise | TContext; onSuccess?: (data: TData, variables: TVariables, context: TContext | undefined) => Promise | void; onError?: (error: TError, variables: TVariables, context: TContext | undefined) => Promise | void; onSettled?: (data: TData | undefined, error: TError | null, variables: TVariables, context: TContext | undefined) => Promise | void; retry?: RetryValue; retryDelay?: RetryDelayValue; useErrorBoundary?: boolean; } export declare type UseMutateFunction = (variables: TVariables, options?: MutateOptions) => void; export declare type UseMutateAsyncFunction = (variables: TVariables, options?: MutateOptions) => Promise; export interface UseMutationResult { context: TContext | undefined; data: TData | undefined; error: TError | null; failureCount: number; isError: boolean; isIdle: boolean; isLoading: boolean; isPaused: boolean; isSuccess: boolean; mutate: UseMutateFunction; mutateAsync: UseMutateAsyncFunction; reset: () => void; status: MutationStatus; variables: TVariables | undefined; } export {};