import { Knex } from 'knex'; import { InsertHeaderResult, ChaintracksStorageBaseOptions, ChaintracksStorageBulkFileApi } from '../Api/ChaintracksStorageApi'; import { ChaintracksStorageBase } from './ChaintracksStorageBase'; import { LiveBlockHeader } from '../Api/BlockHeaderApi'; import { BlockHeader } from '../../../../sdk/WalletServices.interfaces'; import { DBType } from '../../../../storage/StorageReader'; import { BulkHeaderFileInfo } from '../util/BulkHeaderFile'; import { HeightRange } from '../util/HeightRange'; import { Chain } from '../../../../sdk/types'; export interface ChaintracksStorageKnexOptions extends ChaintracksStorageBaseOptions { /** * Required. * * Knex.js database interface initialized with valid connection configuration. */ knex: Knex | undefined; } /** * Implements the ChaintracksStorageApi using Knex.js for both MySql and Sqlite support. * Also see `chaintracksStorageMemory` which leverages Knex support for an in memory database. */ export declare class ChaintracksStorageKnex extends ChaintracksStorageBase implements ChaintracksStorageBulkFileApi { static createStorageKnexOptions(chain: Chain, knex?: Knex): ChaintracksStorageKnexOptions; knex: Knex; _dbtype?: DBType; bulkFilesTableName: string; headerTableName: string; constructor(options: ChaintracksStorageKnexOptions); get dbtype(): DBType; shutdown(): Promise; makeAvailable(): Promise; migrateLatest(): Promise; dropAllData(): Promise; destroy(): Promise; findLiveHeightRange(): Promise; findLiveHeaderForHeaderId(headerId: number): Promise; findChainTipHeader(): Promise; findChainTipHeaderOrUndefined(): Promise; findLiveHeaderForHeight(height: number): Promise; findLiveHeaderForBlockHash(hash: string): Promise; findLiveHeaderForMerkleRoot(merkleRoot: string): Promise; deleteBulkFile(fileId: number): Promise; insertBulkFile(file: BulkHeaderFileInfo): Promise; updateBulkFile(fileId: number, file: BulkHeaderFileInfo): Promise; getBulkFiles(): Promise; dbTypeSubstring(source: string, fromOffset: number, forLength?: number): string; getBulkFileData(fileId: number, offset?: number, length?: number): Promise; /** * @param header Header to attempt to add to live storage. * @returns details of conditions found attempting to insert header */ insertHeader(header: BlockHeader): Promise; findMaxHeaderId(): Promise; deleteLiveBlockHeaders(): Promise; deleteBulkBlockHeaders(): Promise; deleteOlderLiveBlockHeaders(maxHeight: number): Promise; getLiveHeaders(range: HeightRange): Promise; concatSerializedHeaders(bufs: number[][]): number[]; liveHeadersForBulk(count: number): Promise; } //# sourceMappingURL=ChaintracksStorageKnex.d.ts.map