import {
  BaseAdapterInterface,
  DataAdapterContext,
  DataItemInterface,
  DataItemValueInterface,
  DataItemHistoryOptionsInterface,
  DataItemDimensionValueInterface,
  DataItemDimensionHistoryOptionsInterface,
} from "..";

export interface DataAdapterInterface extends BaseAdapterInterface {
  onContext(context: DataAdapterContext);

  fetchValues(
    item: DataItemInterface,
    options: DataItemHistoryOptionsInterface
  ): Promise<DataItemValueInterface[]>;

  fetchDimensionValues(
    item: DataItemInterface,
    dimension: number,
    options: DataItemDimensionHistoryOptionsInterface
  ): Promise<DataItemDimensionValueInterface[]>;

  update(item: DataItemInterface): Promise<void>;
}
