import { VoteStaple, Vote, VoteBlockHash } from '../vote'; import type { VoteBlockHashMap } from '../vote'; import { BlockHash } from '../block'; import { Block } from '../block'; import type { GenericAccount, IdentifierAddress, TokenAddress } from '../account'; import Account, { AccountKeyAlgorithm } from '../account'; import type { Ledger, LedgerConfig, LedgerStorageAPI, LedgerSelector, PaginatedVotes, GetVotesAfterOptions, LedgerStorageTransactionBaseOptions, ListACLsByEntityFilters } from '../ledger'; import { IdempotentKey, LedgerStorageTransactionBase } from '../ledger'; import type { ACLRow, GetAllBalancesResponse, LedgerStatistics, CertificateWithIntermediates, AccountInfoForType } from './types'; import { LedgerStorageBase } from './common'; import * as sqlite from 'sqlite'; import type { ComputedEffectOfBlocks } from './effects'; import type { CertificateHash } from '../utils/certificate'; declare class DBSqliteTransaction extends LedgerStorageTransactionBase { sql: Awaited>; release: null | ((value: null | number) => void); lock: null | Promise; constructor(baseTransaction: LedgerStorageTransactionBaseOptions, db: Awaited>); } export interface DBSqliteConfig { filename: string; retryCount?: number; } export declare class DBSqlite extends LedgerStorageBase implements LedgerStorageAPI { #private; constructor(); init(config: LedgerConfig, ledger: Ledger): void; destroy(): Promise; beginTransaction(transactionBase: LedgerStorageTransactionBaseOptions): Promise; commitTransaction(transaction: DBSqliteTransaction): Promise; abortTransaction(transaction: DBSqliteTransaction): Promise; evaluateError(error: any): Promise; delegatedWeight(transaction: DBSqliteTransaction, rep?: Account | InstanceType): Promise; getBalance(transaction: DBSqliteTransaction, account: GenericAccount, token: TokenAddress): Promise; getAllBalances(transaction: DBSqliteTransaction, account: GenericAccount): Promise; addPendingVote(transaction: DBSqliteTransaction, votesAndBlocks: VoteStaple): Promise; getAccountRep(transaction: DBSqliteTransaction, userAccount: GenericAccount | string): Promise; /** * If an adjustment cannot be made right now, defer it for follow-up */ protected adjustDefer(transaction: DBSqliteTransaction, input: VoteStaple): Promise; listOwners(transaction: DBSqliteTransaction, entity: IdentifierAddress): Promise[]>; listACLsByEntity(transaction: DBSqliteTransaction, entity: GenericAccount, options?: ListACLsByEntityFilters): Promise; listACLsByPrincipal(transaction: DBSqliteTransaction, principal: ACLRow['principal'], entityList?: GenericAccount[]): Promise; getAccountInfo(transaction: DBSqliteTransaction, account: Account | string): Promise>; adjust(transaction: DBSqliteTransaction, input: VoteStaple, changes: ComputedEffectOfBlocks, mayDefer?: boolean, completedStaples?: Set): Promise; getBlock(transaction: DBSqliteTransaction, block: BlockHash, from: LedgerSelector): Promise; getBlockHeight(transaction: DBSqliteTransaction, blockHash: BlockHash, account: GenericAccount): Promise; getBlockHeights(transaction: DBSqliteTransaction, toFetch: { blockHash: BlockHash; account: GenericAccount; }[]): Promise<{ [blockHash: string]: bigint | null; }>; getVotes(transaction: DBSqliteTransaction, block: BlockHash, from: LedgerSelector): Promise; getVoteStaples(transaction: DBSqliteTransaction, voteBlockHashes: VoteBlockHash[], from?: LedgerSelector): Promise>; getHistory(transaction: DBSqliteTransaction, account: GenericAccount | null, start: VoteBlockHash | null, limit?: number): Promise; getBlockFromPrevious(transaction: DBSqliteTransaction, prevBlock: BlockHash, from: LedgerSelector): Promise; getVotesFromMultiplePrevious(transaction: DBSqliteTransaction, prevBlocks: BlockHash[], from: LedgerSelector, issuer?: GenericAccount): Promise<{ [hash: string]: Vote[] | null; }>; getHeadBlocks(transaction: DBSqliteTransaction, accounts: GenericAccount[], from: LedgerSelector): Promise<{ [publicKey: string]: Block | null; }>; getVotesAfter(transaction: DBSqliteTransaction, moment: Date, startKey?: string, options?: GetVotesAfterOptions): Promise; getAccountCertificates(transaction: DBSqliteTransaction, account: GenericAccount): Promise; getAccountCertificateByHash(transaction: DBSqliteTransaction, account: GenericAccount, hash: CertificateHash): Promise; protected gcBatch(transaction: DBSqliteTransaction): Promise; getNextSerialNumber(transaction: DBSqliteTransaction): Promise; getIdempotentBlockHash(transaction: DBSqliteTransaction, idempotent: IdempotentKey, from: LedgerSelector, excludeBlockHash?: BlockHash): Promise; stats(): Promise; } export default DBSqlite;