import type { InvalidateQueryFilters, QueryClientConfig } from '@tanstack/react-query';
import { QueryClient } from '@tanstack/react-query';
import { type AnyDataSource, type DataManager, type DataSourceParams, type DataSourceTag } from '../core';
import type { InvalidateOptions, InvalidateRepeatOptions } from '../core/types/DataManagerOptions';
export type ClientDataManagerConfig = QueryClientConfig;
export declare class ClientDataManager implements DataManager {
    readonly queryClient: QueryClient;
    constructor(config?: ClientDataManagerConfig);
    invalidateTag(tag: DataSourceTag, invalidateOptions?: InvalidateOptions): Promise<void>;
    invalidateTags(tags: DataSourceTag[], invalidateOptions?: InvalidateOptions): Promise<void>;
    invalidateSource<TDataSource extends AnyDataSource>(dataSource: TDataSource, invalidateOptions?: InvalidateOptions): Promise<void>;
    resetSource<TDataSource extends AnyDataSource>(dataSource: TDataSource): Promise<void>;
    invalidateParams<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>, invalidateOptions?: InvalidateOptions): Promise<void>;
    resetParams<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>): Promise<void>;
    invalidateSourceTags<TDataSource extends AnyDataSource>(dataSource: TDataSource, params: DataSourceParams<TDataSource>, invalidateOptions?: InvalidateOptions): Promise<void>;
    protected invalidateQueries(filters: InvalidateQueryFilters, invalidateOptions?: InvalidateOptions): Promise<void>;
    protected repeatInvalidate(invalidate: () => Promise<void>, repeat?: InvalidateRepeatOptions): void;
}
