import type { QueryFilters } from './utils'; import type { Action, QueryState } from './query'; import { Query } from './query'; import type { NotifyEvent, QueryKey, QueryOptions } from './types'; import type { QueryClient } from './queryClient'; import { Subscribable } from './subscribable'; import type { QueryObserver } from './queryObserver'; interface QueryCacheConfig { onError?: (error: unknown, query: Query) => void; onSuccess?: (data: unknown, query: Query) => void; onSettled?: (data: unknown | undefined, error: unknown | null, query: Query) => void; } interface NotifyEventQueryAdded extends NotifyEvent { type: 'added'; query: Query; } interface NotifyEventQueryRemoved extends NotifyEvent { type: 'removed'; query: Query; } interface NotifyEventQueryUpdated extends NotifyEvent { type: 'updated'; query: Query; action: Action; } interface NotifyEventQueryObserverAdded extends NotifyEvent { type: 'observerAdded'; query: Query; observer: QueryObserver; } interface NotifyEventQueryObserverRemoved extends NotifyEvent { type: 'observerRemoved'; query: Query; observer: QueryObserver; } interface NotifyEventQueryObserverResultsUpdated extends NotifyEvent { type: 'observerResultsUpdated'; query: Query; } interface NotifyEventQueryObserverOptionsUpdated extends NotifyEvent { type: 'observerOptionsUpdated'; query: Query; observer: QueryObserver; } declare type QueryCacheNotifyEvent = NotifyEventQueryAdded | NotifyEventQueryRemoved | NotifyEventQueryUpdated | NotifyEventQueryObserverAdded | NotifyEventQueryObserverRemoved | NotifyEventQueryObserverResultsUpdated | NotifyEventQueryObserverOptionsUpdated; declare type QueryCacheListener = (event: QueryCacheNotifyEvent) => void; export declare class QueryCache extends Subscribable { config: QueryCacheConfig; private queries; private queriesMap; constructor(config?: QueryCacheConfig); build(client: QueryClient, options: QueryOptions, state?: QueryState): Query; add(query: Query): void; remove(query: Query): void; clear(): void; get(queryHash: string): Query | undefined; getAll(): Query[]; find(arg1: QueryKey, arg2?: QueryFilters): Query | undefined; findAll(queryKey?: QueryKey, filters?: QueryFilters): Query[]; findAll(filters?: QueryFilters): Query[]; findAll(arg1?: QueryKey | QueryFilters, arg2?: QueryFilters): Query[]; notify(event: QueryCacheNotifyEvent): void; onFocus(): void; onOnline(): void; } export {}; //# sourceMappingURL=queryCache.d.ts.map