import { QueryFilters } from './utils'; import { Action, Query, QueryState } from './query'; import type { QueryKey, QueryOptions } from './types'; import type { QueryClient } from './queryClient'; import { Subscribable } from './subscribable'; import { QueryObserver } from './queryObserver'; interface QueryCacheConfig { onError?: (error: unknown, query: Query) => void; onSuccess?: (data: unknown, query: Query) => void; } interface NotifyEventQueryAdded { type: 'queryAdded'; query: Query; } interface NotifyEventQueryRemoved { type: 'queryRemoved'; query: Query; } interface NotifyEventQueryUpdated { type: 'queryUpdated'; query: Query; action: Action; } interface NotifyEventObserverAdded { type: 'observerAdded'; query: Query; observer: QueryObserver; } interface NotifyEventObserverRemoved { type: 'observerRemoved'; query: Query; observer: QueryObserver; } interface NotifyEventObserverResultsUpdated { type: 'observerResultsUpdated'; query: Query; } declare type QueryCacheNotifyEvent = NotifyEventQueryAdded | NotifyEventQueryRemoved | NotifyEventQueryUpdated | NotifyEventObserverAdded | NotifyEventObserverRemoved | NotifyEventObserverResultsUpdated; 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 {};