import { Chain } from '../../../../sdk'; import { InsertHeaderResult, ChaintracksStorageBaseOptions, ChaintracksStorageIngestApi, ChaintracksStorageQueryApi } from '../Api/ChaintracksStorageApi'; import { BaseBlockHeader, BlockHeader, LiveBlockHeader } from '../Api/BlockHeaderApi'; import { HeightRange } from '../util/HeightRange'; import { BulkFileDataManager } from '../util/BulkFileDataManager'; /** * Required interface methods of a Chaintracks Storage Engine implementation. */ export declare abstract class ChaintracksStorageBase implements ChaintracksStorageQueryApi, ChaintracksStorageIngestApi { static createStorageBaseOptions(chain: Chain): ChaintracksStorageBaseOptions; log: (...args: any[]) => void; chain: Chain; liveHeightThreshold: number; reorgHeightThreshold: number; bulkMigrationChunkSize: number; batchInsertLimit: number; isAvailable: boolean; hasMigrated: boolean; bulkManager: BulkFileDataManager; constructor(options: ChaintracksStorageBaseOptions); protected validateIncomingHeader(header: BlockHeader): BlockHeader; protected validateLiveHeaderRecord(header: LiveBlockHeader, allowUnassignedHeaderId?: boolean): LiveBlockHeader; protected validateHeight(height: number, name?: string): void; protected validateHeaderId(headerId: number, name?: string): void; protected validateHash(hash: string, name?: string): void; protected validateRange(range: HeightRange, maximumLength?: number): void; protected recordTraversalVisit(seen: Set, header: LiveBlockHeader, operation: string): void; protected validateStoredParentLink(child: LiveBlockHeader, parent: LiveBlockHeader): void; shutdown(): Promise; makeAvailable(): Promise; migrateLatest(): Promise; dropAllData(): Promise; abstract deleteLiveBlockHeaders(): Promise; abstract deleteOlderLiveBlockHeaders(maxHeight: number): Promise; abstract findChainTipHeader(): Promise; abstract findChainTipHeaderOrUndefined(): Promise; abstract findLiveHeaderForBlockHash(hash: string): Promise; abstract findLiveHeaderForHeaderId(headerId: number): Promise; abstract findLiveHeaderForHeight(height: number): Promise; abstract findLiveHeaderForMerkleRoot(merkleRoot: string): Promise; abstract findLiveHeightRange(): Promise; abstract findMaxHeaderId(): Promise; abstract liveHeadersForBulk(count: number): Promise; abstract getLiveHeaders(range: HeightRange): Promise; /** * @param header Header to attempt to add to live storage. * @returns details of conditions found attempting to insert header */ abstract insertHeader(header: BlockHeader): Promise; abstract destroy(): Promise; getBulkHeaders(range: HeightRange): Promise; getHeadersUint8Array(height: number, count: number): Promise; getHeaders(height: number, count: number): Promise; deleteBulkBlockHeaders(): Promise; getAvailableHeightRanges(): Promise<{ bulk: HeightRange; live: HeightRange; }>; private lastActiveMinHeight; pruneLiveBlockHeaders(activeTipHeight: number): Promise; findChainTipHash(): Promise; findChainTipWork(): Promise; findChainWorkForBlockHash(hash: string): Promise; findBulkFilesHeaderForHeightOrUndefined(height: number): Promise; findHeaderForHeightOrUndefined(height: number): Promise; findHeaderForHeight(height: number): Promise; isMerkleRootActive(merkleRoot: string): Promise; private resolveLiveHeaderReference; private findStoredCommonAncestor; findCommonAncestor(header1: LiveBlockHeader, header2: LiveBlockHeader): Promise; findReorgDepth(header1: LiveBlockHeader, header2: LiveBlockHeader): Promise; private nowMigratingLiveToBulk; migrateLiveToBulk(count: number, ignoreLimits?: boolean): Promise; addBulkHeaders(headers: BlockHeader[], bulkRange: HeightRange, priorLiveHeaders: BlockHeader[]): Promise; private getMinimumBulkHeaderHeight; private buildBulkHeaderChains; private addHeaderToBulkChains; private addBulkHeadersFromBestChain; private addLiveHeadersToBulk; } //# sourceMappingURL=ChaintracksStorageBase.d.ts.map