///
import { FileSystem } from '../../fileSystems';
import { BlockHeader } from '../../primitives';
import { BlockHash } from '../../primitives/blockheader';
import { TransactionHash } from '../../primitives/transaction';
import { IDatabase, IDatabaseStore, IDatabaseTransaction } from '../../storage';
import { AssetSchema, HashToNextSchema, HeadersSchema, MetaSchema, SequenceToHashesSchema, SequenceToHashSchema, TransactionHashToBlockHashSchema, TransactionsSchema } from '../schema';
import { AssetValue } from './assetValue';
import { HeaderValue } from './headers';
import { TransactionsValue } from './transactions';
export declare const VERSION_DATABASE_CHAIN = 28;
export declare class BlockchainDB {
db: IDatabase;
location: string;
files: FileSystem;
headers: IDatabaseStore;
meta: IDatabaseStore;
transactions: IDatabaseStore;
sequenceToHashes: IDatabaseStore;
sequenceToHash: IDatabaseStore;
hashToNextHash: IDatabaseStore;
assets: IDatabaseStore;
transactionHashToBlockHash: IDatabaseStore;
constructor(options: {
location: string;
files: FileSystem;
});
open(): Promise;
close(): Promise;
getBlockHeader(blockHash: Buffer, tx?: IDatabaseTransaction): Promise;
deleteHeader(hash: Buffer, tx?: IDatabaseTransaction): Promise;
putBlockHeader(hash: Buffer, header: HeaderValue, tx?: IDatabaseTransaction): Promise;
getMetaHash(key: 'head' | 'latest', tx?: IDatabaseTransaction): Promise;
putMetaHash(key: 'head' | 'latest', value: Buffer, tx?: IDatabaseTransaction): Promise;
getTransactions(blockHash: Buffer, tx?: IDatabaseTransaction): Promise;
addTransaction(hash: Buffer, value: TransactionsValue, tx?: IDatabaseTransaction): Promise;
putTransaction(hash: Buffer, value: TransactionsValue, tx?: IDatabaseTransaction): Promise;
deleteTransaction(hash: Buffer, tx?: IDatabaseTransaction): Promise;
getBlockHashesAtSequence(sequence: number, tx?: IDatabaseTransaction): Promise;
getBlockHeadersAtSequence(sequence: number, tx?: IDatabaseTransaction): Promise;
addHashAtSequence(sequence: number, hash: Buffer, tx?: IDatabaseTransaction): Promise;
removeHashAtSequence(sequence: number, hash: Buffer, tx?: IDatabaseTransaction): Promise;
getBlockHashAtSequence(sequence: number, tx?: IDatabaseTransaction): Promise;
getBlockHeaderAtSequence(sequence: number): Promise;
putSequenceToHash(sequence: number, hash: Buffer, tx?: IDatabaseTransaction): Promise;
deleteSequenceToHash(sequence: number, tx?: IDatabaseTransaction): Promise;
clearSequenceToHash(tx?: IDatabaseTransaction): Promise;
getNextHash(hash: BlockHash, tx?: IDatabaseTransaction): Promise;
putNextHash(hash: Buffer, nextHash: Buffer, tx?: IDatabaseTransaction): Promise;
deleteNextHash(hash: Buffer, tx?: IDatabaseTransaction): Promise;
clearHashToNextHash(tx?: IDatabaseTransaction): Promise;
getAsset(assetId: Buffer, tx?: IDatabaseTransaction): Promise;
putAsset(assetId: Buffer, assetValue: AssetValue, tx?: IDatabaseTransaction): Promise;
deleteAsset(assetId: Buffer, tx?: IDatabaseTransaction): Promise;
getBlockHashByTransactionHash(transactionHash: TransactionHash, tx?: IDatabaseTransaction): Promise;
transactionHashHasBlock(transactionHash: TransactionHash, tx?: IDatabaseTransaction): Promise;
putTransactionHashToBlockHash(transactionHash: Buffer, blockHash: Buffer, tx?: IDatabaseTransaction): Promise;
deleteTransactionHashToBlockHash(transactionHash: Buffer, tx?: IDatabaseTransaction): Promise;
compact(): Promise;
getVersion(): Promise;
transaction(): IDatabaseTransaction;
size(): Promise;
}
//# sourceMappingURL=blockchaindb.d.ts.map