import { Chain, Timeframe } from '../../../../enums';
import { ContractPointer, NFTCollectionSales, Value } from '../../../../types';

export abstract class NftCollectionDataProvider {
  abstract getBlockchain(_chain: Chain): string;
  abstract getFloor(_contract: ContractPointer): Promise<Value>;
  abstract getFloorChart(
    _contract: ContractPointer,
    _timeframe?: Timeframe
  ): Promise<Value>;
  abstract getHistoricSales(
    _contract: ContractPointer
  ): Promise<NFTCollectionSales>;
  abstract getMarketCap(_contract: ContractPointer): Promise<Value>;
  abstract getMetadata(_contract: ContractPointer): Promise<any>;
  abstract getName(): string;
}
