import { _ChainAsset } from '@soul-wallet/chain-list/types'; import { BalanceItem, ChainStakingMetadata, CrowdloanItem, MantaPayConfig, NftCollection, NftItem, NominatorMetadata, PriceJson, StakingItem, StakingType, TransactionHistoryItem } from '@soul-wallet/extension-base/background/KoniTypes'; import { EventService } from '../../services/event-service'; import { IBalance, IChain, INft } from '../../services/storage-service/databases'; import { AssetStore, BalanceStore, ChainStore, CrowdloanStore, MetadataStore, MigrationStore, NftCollectionStore, NftStore, PriceStore, StakingStore, TransactionStore } from '../../services/storage-service/db-stores'; import ChainStakingMetadataStore from '../../services/storage-service/db-stores/ChainStakingMetadata'; import MantaPayStore from '../../services/storage-service/db-stores/MantaPay'; import NominatorMetadataStore from '../../services/storage-service/db-stores/NominatorMetadata'; import { HistoryQuery } from '../../services/storage-service/db-stores/Transaction'; import { Subscription } from 'dexie'; export default class DatabaseService { private eventService; private _db; stores: { price: PriceStore; balance: BalanceStore; nft: NftStore; nftCollection: NftCollectionStore; crowdloan: CrowdloanStore; staking: StakingStore; transaction: TransactionStore; migration: MigrationStore; metadata: MetadataStore; chain: ChainStore; asset: AssetStore; chainStakingMetadata: ChainStakingMetadataStore; nominatorMetadata: NominatorMetadataStore; mantaPay: MantaPayStore; }; private logger; private nftSubscription; private stakingSubscription; constructor(eventService: EventService); updatePriceStore(priceData: PriceJson): Promise; getPriceStore(): Promise; getStoredBalance(): Promise; updateBalanceStore(address: string, item: BalanceItem): Promise; removeFromBalanceStore(assets: string[]): Promise; updateCrowdloanStore(chain: string, address: string, item: CrowdloanItem): Promise; updateStaking(chain: string, address: string, item: StakingItem): Promise; getStakings(addresses: string[], chains?: string[]): Promise; getStakingsByChains(chains: string[]): Promise; getPooledStakings(addresses: string[], chainHashes?: string[]): Promise; subscribeStaking(addresses: string[], chainList?: string[], callback?: (stakingItems: StakingItem[]) => void): Subscription; subscribeChainStakingMetadata(chains: string[], callback: (data: ChainStakingMetadata[]) => void): void; subscribeNominatorMetadata(addresses: string[], callback: (data: NominatorMetadata[]) => void): Subscription; getHistories(query?: HistoryQuery): Promise; upsertHistory(histories: TransactionHistoryItem[]): Promise; updateHistoryByExtrinsicHash(extrinsicHash: string, updateData: Partial): Promise; addNftCollection(collection: NftCollection): Promise; deleteNftCollection(chain: string, collectionId: string): Promise; getAllNftCollection(chainHashes?: string[]): import("dexie").PromiseExtended; subscribeNft(addresses: string[], chainHashes?: string[], callback?: (nfts: INft[]) => void): Subscription; cleanUpNft(chain: string, owner: string, collectionIds: string[], nftIds: string[], ownNothing?: boolean): Promise; getNft(addresses: string[], chainHashes?: string[]): Promise; addNft(address: string, nft: NftItem): Promise; handleNftTransfer(chain: string, addresses: string[], nftItem: NftItem): import("dexie").PromiseExtended; removeNfts(chain: string, address: string, collectionId: string, nftIds: string[]): import("dexie").PromiseExtended; removeNftsByAddress(address: string): import("dexie").PromiseExtended; updateChainStore(item: IChain): Promise; bulkUpdateChainStore(data: IChain[]): Promise; removeFromChainStore(chains: string[]): Promise; getAllChainStore(): Promise; updateAssetStore(item: _ChainAsset): Promise; getAllAssetStore(): Promise<_ChainAsset[]>; removeFromAssetStore(items: string[]): Promise; updateChainStakingMetadata(item: ChainStakingMetadata, changes?: Record): Promise; getChainStakingMetadata(): Promise; getStakingMetadataByChain(chain: string, type?: StakingType): Promise; updateNominatorMetadata(item: NominatorMetadata): Promise; getNominatorMetadata(): Promise; resetWallet(resetAll: boolean): Promise; setMantaPayData(data: any): Promise; updateMantaPayData(key: string, data: Record): Promise; getMantaPayData(key: string): Promise; deleteMantaPayConfig(key: string): Promise; subscribeMantaPayConfig(chain: string, callback: (data: MantaPayConfig[]) => void): void; getMantaPayConfig(chain: string): Promise; getMantaPayFirstConfig(chain: string): Promise; }