import { AppInterface, BaseService, DataAdapterInterface, DataItemInterface, DataItemValueInterface, DataItemHistoryOptionsInterface, DataItemDimensionHistoryOptionsInterface, DataItemDimensionValueInterface } from "..";
declare type SubscriptionCallback = () => void;
export declare class DataService extends BaseService {
    private app;
    private services;
    private adapter;
    private context;
    private itemStore;
    private itemSubscriptions;
    private itemListSubscriptions;
    private valueStore;
    private valueSubscriptions;
    constructor(app: AppInterface, adapter: DataAdapterInterface);
    private notifyDataSubscribers;
    subscribeItemList(callback: SubscriptionCallback): () => void;
    subscribeItem(item: DataItemInterface, callback: SubscriptionCallback): () => void;
    subscribeValue(item: DataItemInterface, callback: SubscriptionCallback): () => void;
    get(source: string, id: string): Promise<DataItemInterface>;
    _getOrThrowSync(source: string, id: string): DataItemInterface;
    getValue(item: DataItemInterface): Promise<DataItemValueInterface>;
    _getValueOrThrowSync(item: DataItemInterface): DataItemValueInterface;
    list(): Promise<DataItemInterface[]>;
    _listOrThrowSync(): DataItemInterface[];
    setItem(item: DataItemInterface): Promise<void>;
    setItems(items: DataItemInterface[]): Promise<void>;
    setValue(item: DataItemInterface, value: DataItemValueInterface): Promise<void>;
    removeItem(item: DataItemInterface): Promise<void>;
    clear(): Promise<void>;
    fetchValues(item: DataItemInterface, options: DataItemHistoryOptionsInterface): Promise<DataItemValueInterface[]>;
    fetchValuesMultiItem(items: DataItemInterface[], options: DataItemHistoryOptionsInterface): Promise<[DataItemInterface, DataItemValueInterface[]][]>;
    fetchDimensionValues(item: DataItemInterface, dimension: number, options: DataItemDimensionHistoryOptionsInterface): Promise<DataItemDimensionValueInterface[]>;
    fetchDimensionValuesMultiItem(items: [DataItemInterface, number][], options: DataItemHistoryOptionsInterface): Promise<[DataItemInterface, number, DataItemDimensionValueInterface[]][]>;
    update(item: DataItemInterface): Promise<void>;
}
export {};
