import type { AccountEntity, AssetEntity, AssetTransactionEntity, NftEntity, SessionEntity, TokenEntity, TransactionEntity, AddressEntity, VaultEntity } from "../../types/db.types"; import type { AssetType } from "../../types/wallet.types"; export interface DBStore { clearData(): Promise; initSchema(): Promise; upsertTransaction(txEntry: TransactionEntity): Promise; upsertAssetTransaction(assetTx: AssetTransactionEntity): Promise; getTransactions(account: number, tokenId?: string): Promise; getPageTransactions(account: number, pageNum: number, pageSize: number, tokenId?: string): Promise; countTransactions(account: number, tokenId?: string): Promise; clearTransactions(account: number): Promise; countTokens(account: number): Promise; upsertToken(token: TokenEntity): Promise; getTokens(account: number, pageNum: number, pageSize: number): Promise; getToken(id: string): Promise; deleteToken(id: string): Promise; countNfts(account: number): Promise; upsertNft(nft: NftEntity): Promise; getNfts(account: number, pageNum: number, pageSize: number): Promise; getNft(id: string): Promise; deleteNft(id: string): Promise; upsertAsset(asset: AssetEntity): Promise; getAssets(account: number, type: AssetType): Promise; deleteAsset(account: number, id: string): Promise; countAssetsById(id: string): Promise; upsertAccount(account: AccountEntity): Promise; getAccounts(): Promise; countAccounts(): Promise; updateAccountName(account: number, name: string): Promise; upsertSession(session: SessionEntity): Promise; getSessionsByAccount(accountId: number): Promise; deleteSession(sessionId: string): Promise; upsertAddress(address: AddressEntity): Promise; getReceiveAddresses(): Promise; getChangeAddresses(): Promise; countAddresses(): Promise; getVaults(): Promise; upsertVault(vault: VaultEntity): Promise; }