import type { Data } from '@normy/core'; import type { InvalidateQueryFilters, QueryClientConfig, QueryKey } from '@tanstack/react-query'; import { QueryClient } from '@tanstack/react-query'; import { type AnyDataSource, type DataManager, type DataSourceParams, type DataSourceTag, type Normalizer, type NormalizerConfig } from '../core'; import type { InvalidateOptions, InvalidateRepeatOptions } from '../core/types/DataManagerOptions'; import type { QueryNormalizer } from './types/normalizer'; export interface ClientDataManagerConfig extends QueryClientConfig { normalizerConfig?: NormalizerConfig | boolean; } export declare class ClientDataManager implements DataManager { readonly queryClient: QueryClient; readonly normalizer?: Normalizer | undefined; readonly queryNormalizer?: QueryNormalizer | undefined; readonly normalizerConfig?: NormalizerConfig | boolean; constructor(config?: ClientDataManagerConfig); optimisticUpdate(mutationData: Data, queryKey?: QueryKey, queryData?: Data): void; invalidateData(data: Data, queryKey?: QueryKey): void; update(data: Data): void; invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise; invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise; invalidateSource(dataSource: TDataSource, invalidateOptions?: InvalidateOptions): Promise; resetSource(dataSource: TDataSource): Promise; invalidateParams(dataSource: TDataSource, params: DataSourceParams, invalidateOptions?: InvalidateOptions): Promise; resetParams(dataSource: TDataSource, params: DataSourceParams): Promise; invalidateSourceTags(dataSource: TDataSource, params: DataSourceParams, invalidateOptions?: InvalidateOptions): Promise; protected invalidateQueries(filters: InvalidateQueryFilters, invalidateOptions?: InvalidateOptions): Promise; protected repeatInvalidate(invalidate: () => Promise, repeat?: InvalidateRepeatOptions): void; private createNormalize; private invalidateQuery; private optimisticUpdateQuery; }