import { AnyLink, CarMakeable, TransactionMeta, TransactionWrapper, BlockstoreOpts, BlockstoreRuntime, Loadable, FPBlock, BlockFetcher } from "@fireproof/core-types-blockstore"; import { BaseBlockstore, CarTransaction, CarTransactionOpts, CompactStrategyContext, CRDT, CRDTClock, Falsy, SuperThis } from "@fireproof/core-types-base"; import { Logger } from "@adviser/cement"; export declare class CarTransactionImpl implements CarMakeable, CarTransaction { #private; readonly parent: BaseBlockstore; constructor(parent: BaseBlockstore, opts?: CarTransactionOpts); get(cid: AnyLink): Promise; superGet(cid: AnyLink): Promise; put(fb: FPBlock): Promise; putSync(fb: FPBlock): void; unshift(fb: FPBlock): void; entries(): AsyncIterableIterator; } export declare function defaultedBlockstoreRuntime(sthis: SuperThis, opts: BlockstoreOpts, component: string, ctx?: Record): BlockstoreRuntime; export declare class BaseBlockstoreImpl implements BlockFetcher { readonly transactions: Set; readonly ebOpts: BlockstoreRuntime; readonly sthis: SuperThis; readonly crdtParent?: CRDT; readonly loader: Loadable; ready(): Promise; close(): Promise; destroy(): Promise; compact(): Promise; readonly logger: Logger; constructor(ebOpts: BlockstoreOpts, crdt?: CRDT); get(cid: AnyLink): Promise; put(fp: FPBlock): Promise; lastTxMeta?: unknown; transaction(fn: (t: CarTransaction) => Promise, _opts?: CarTransactionOpts): Promise>; openTransaction(opts?: CarTransactionOpts): CarTransaction; commitTransaction(t: CarTransaction, done: M, opts: CarTransactionOpts): Promise>; entries(): AsyncIterableIterator; } export declare class EncryptedBlockstore extends BaseBlockstoreImpl { ready(): Promise; close(): Promise; destroy(): Promise; compacting: boolean; readonly logger: Logger; constructor(sthis: SuperThis, ebOpts: BlockstoreOpts, crdt?: CRDT); get(cid: AnyLink): Promise; transaction(fn: (t: CarTransaction) => Promise, opts?: { noLoader: boolean; }): Promise>; getFile(car: AnyLink, cid: AnyLink): Promise; compact(): Promise; entries(): AsyncIterableIterator; } export declare class CompactionFetcher implements CompactStrategyContext { readonly transactions: Set; readonly clock?: CRDTClock; readonly lastTxMeta: TransactionMeta; readonly loader: Loadable; readonly logger: Logger; readonly blockstore: EncryptedBlockstore; readonly loggedBlocks: CarTransaction; constructor(blocks: EncryptedBlockstore); get(cid: AnyLink): Promise; }