import { CRDT } from './crdt';
import { Doc, DbResponse, ClockHead, ChangesResponse, MapFn, ListenerFn } from './types';
export declare class Database {
    name: string;
    config: object;
    listeners: Set<ListenerFn>;
    _crdt: CRDT;
    _writeQueue: any;
    constructor(name: string, config?: {
        blocks: null;
    });
    put(doc: Doc): Promise<DbResponse>;
    get(id: string): Promise<Doc>;
    del(id: string): Promise<DbResponse>;
    changes(since: ClockHead): Promise<ChangesResponse>;
    index(name: string, mapFn?: MapFn): import("./indexer").Indexer;
    subscribe(listener: ListenerFn): () => void;
}
