import { ChaintracksStorageBaseOptions, ChaintracksStorageBulkFileApi, InsertHeaderResult } from '../Api/ChaintracksStorageApi'; import { ChaintracksStorageBase } from './ChaintracksStorageBase'; import { LiveBlockHeader } from '../Api/BlockHeaderApi'; import { HeightRange } from '../util/HeightRange'; import { BlockHeader } from '../../../../sdk/WalletServices.interfaces'; import { IDBPDatabase, IDBPTransaction } from 'idb'; import { BulkHeaderFileInfo } from '../util/BulkHeaderFile'; export interface ChaintracksStorageIdbOptions extends ChaintracksStorageBaseOptions { } export declare class ChaintracksStorageIdb extends ChaintracksStorageBase implements ChaintracksStorageBulkFileApi { dbName: string; db?: IDBPDatabase; whenLastAccess?: Date; allStores: string[]; constructor(options: ChaintracksStorageIdbOptions); makeAvailable(): Promise; migrateLatest(): Promise; destroy(): Promise; deleteLiveBlockHeaders(): Promise; /** * Delete live headers with height less or equal to `maxHeight` * * Set existing headers with previousHeaderId value set to the headerId value of * a header which is to be deleted to null. * * @param maxHeight delete all records with less or equal `height` * @returns number of deleted records */ deleteOlderLiveBlockHeaders(maxHeight: number): Promise; /** * @returns the active chain tip header * @throws an error if there is no tip. */ findChainTipHeader(): Promise; /** * * @returns the active chain tip header * @throws an error if there is no tip. */ findChainTipHeaderOrUndefined(): Promise; findLiveHeaderForBlockHash(hash: string): Promise; findLiveHeaderForHeaderId(headerId: number): Promise; findLiveHeaderForHeight(height: number): Promise; findLiveHeaderForMerkleRoot(merkleRoot: string): Promise; findLiveHeightRange(): Promise; findMaxHeaderId(): Promise; liveHeadersForBulk(count: number): Promise; getLiveHeaders(range: HeightRange): Promise; insertHeader(header: BlockHeader): Promise; deleteBulkFile(fileId: number): Promise; insertBulkFile(file: BulkHeaderFileInfo): Promise; updateBulkFile(fileId: number, file: BulkHeaderFileInfo): Promise; getBulkFiles(): Promise; getBulkFileData(fileId: number, offset?: number, length?: number): Promise; /** * IndexedDB does not do indices of boolean properties. * So true is stored as a 1, and false is stored as no property value (delete v['property']) * * This function restores these property values to true and false. * * @param header * @returns copy of header with updated properties */ private repairStoredLiveHeader; private prepareStoredLiveHeader; insertLiveHeader(header: LiveBlockHeader): Promise; initDB(): Promise>; toDbTrxReadOnly(stores: string[]): IDBPTransaction; toDbTrxReadWrite(stores: string[]): IDBPTransaction; } export interface ChaintracksStorageIdbSchema { liveHeaders: { key: number; value: LiveBlockHeader; indexes: { hash: string; previousHash: string; previousHeaderId: number | null; isActive: boolean; activeTip: [boolean, boolean]; height: number; }; }; bulkHeaders: { key: number; value: BulkHeaderFileInfo; indexes: { firstHeight: number; }; }; } //# sourceMappingURL=ChaintracksStorageIdb.d.ts.map