import { Link } from 'multiformats';
import { TransactionBlockstore, Transaction } from './transaction';
import { DocUpdate, ClockHead, BlockFetcher, AnyLink, DocValue, BulkResult } from './types';
export declare function makeGetBlock(blocks: BlockFetcher): (address: Link) => Promise<import("multiformats").BlockView<unknown, number, number, 0 | 1>>;
export declare function applyBulkUpdateToCrdt(tblocks: Transaction, head: ClockHead, updates: DocUpdate[], options?: object): Promise<BulkResult>;
export declare function getValueFromCrdt(blocks: TransactionBlockstore, head: ClockHead, key: string): Promise<DocValue>;
export declare function getValueFromLink(blocks: TransactionBlockstore, link: AnyLink): Promise<DocValue>;
export declare function clockChangesSince(blocks: TransactionBlockstore, head: ClockHead, since: ClockHead): Promise<{
    result: DocUpdate[];
    head: ClockHead;
}>;
export declare function doCompact(blocks: TransactionBlockstore, head: ClockHead): Promise<void>;
