import { TransactionBlockstore, IndexBlockstore } from './transaction';
import { DocUpdate, BulkResult, ClockHead, MapFn, IdxMeta } from './types';
import { Indexer } from './indexer';
export declare class CRDT {
    name: string | null;
    ready: Promise<[void, void]>;
    blocks: TransactionBlockstore;
    indexBlocks: IndexBlockstore;
    indexers: Map<string, Indexer>;
    private _head;
    constructor(name?: string, blocks?: TransactionBlockstore);
    bulk(updates: DocUpdate[], options?: object): Promise<BulkResult>;
    get(key: string): Promise<import("./types").DocValue | null>;
    changes(since?: ClockHead): Promise<{
        result: DocUpdate[];
        head: ClockHead;
    }>;
    compact(): Promise<void>;
    indexer(name: string, mapFn?: MapFn, meta?: IdxMeta): Indexer;
}
