import { Updater } from './utils'; import type { QueryKey, QueryOptions, QueryStatus, EnsuredQueryKey, QueryMeta, CancelOptions, SetDataOptions } from './types'; import type { QueryCache } from './queryCache'; import type { QueryObserver } from './queryObserver'; interface QueryConfig { cache: QueryCache; queryKey: TQueryKey; queryHash: string; options?: QueryOptions; defaultOptions?: QueryOptions; state?: QueryState; meta: QueryMeta | undefined; } export interface QueryState { data: TData | undefined; dataUpdateCount: number; dataUpdatedAt: number; error: TError | null; errorUpdateCount: number; errorUpdatedAt: number; fetchFailureCount: number; fetchMeta: any; isFetching: boolean; isInvalidated: boolean; isPaused: boolean; status: QueryStatus; } export interface FetchContext { fetchFn: () => unknown | Promise; fetchOptions?: FetchOptions; options: QueryOptions; queryKey: EnsuredQueryKey; state: QueryState; meta: QueryMeta | undefined; } export interface QueryBehavior { onFetch: (context: FetchContext) => void; } export interface FetchOptions { cancelRefetch?: boolean; meta?: any; } interface FailedAction { type: 'failed'; } interface FetchAction { type: 'fetch'; meta?: any; } interface SuccessAction { data: TData | undefined; type: 'success'; dataUpdatedAt?: number; } interface ErrorAction { type: 'error'; error: TError; } interface InvalidateAction { type: 'invalidate'; } interface PauseAction { type: 'pause'; } interface ContinueAction { type: 'continue'; } interface SetStateAction { type: 'setState'; state: QueryState; setStateOptions?: SetStateOptions; } export declare type Action = ContinueAction | ErrorAction | FailedAction | FetchAction | InvalidateAction | PauseAction | SetStateAction | SuccessAction; export interface SetStateOptions { meta?: any; } export declare class Query { queryKey: TQueryKey; queryHash: string; options: QueryOptions; initialState: QueryState; revertState?: QueryState; state: QueryState; cacheTime: number; meta: QueryMeta | undefined; private cache; private promise?; private gcTimeout?; private retryer?; private observers; private defaultOptions?; private abortSignalConsumed; private hadObservers; constructor(config: QueryConfig); private setOptions; setDefaultOptions(options: QueryOptions): void; private scheduleGc; private clearGcTimeout; private optionalRemove; setData(updater: Updater, options?: SetDataOptions): TData; setState(state: QueryState, setStateOptions?: SetStateOptions): void; cancel(options?: CancelOptions): Promise; destroy(): void; reset(): void; isActive(): boolean; isFetching(): boolean; isStale(): boolean; isStaleByTime(staleTime?: number): boolean; onFocus(): void; onOnline(): void; addObserver(observer: QueryObserver): void; removeObserver(observer: QueryObserver): void; getObserversCount(): number; invalidate(): void; fetch(options?: QueryOptions, fetchOptions?: FetchOptions): Promise; private dispatch; protected getDefaultState(options: QueryOptions): QueryState; protected reducer(state: QueryState, action: Action): QueryState; } export {};