import type { Blockstore, InputPair, Pair } from 'interface-blockstore';
import type { BlockstoreAbortOptions, BlockstoreInput, BlockstoreSource } from './blockstore-utils.js';
import { CID } from 'multiformats';
import { createLevelDatabase, LevelWrapper } from './level-wrapper.js';
/**
 * Blockstore implementation using LevelDB for storing the actual messages (in the case of MessageStore)
 * or the data associated with messages (in the case of a DataStore).
 */
export declare class BlockstoreLevel implements Blockstore {
    config: BlockstoreLevelConfig;
    db: LevelWrapper<Uint8Array>;
    constructor(config: BlockstoreLevelConfig, db?: LevelWrapper<Uint8Array>);
    open(): Promise<void>;
    close(): Promise<void>;
    partition(name: string): Promise<BlockstoreLevel>;
    put(key: CID | string, val: BlockstoreInput, options?: BlockstoreAbortOptions): Promise<CID>;
    get(key: CID | string, options?: BlockstoreAbortOptions): AsyncGenerator<Uint8Array>;
    has(key: CID | string, options?: BlockstoreAbortOptions): Promise<boolean>;
    delete(key: CID | string, options?: BlockstoreAbortOptions): Promise<void>;
    isEmpty(options?: BlockstoreAbortOptions): Promise<boolean>;
    putMany(source: BlockstoreSource<InputPair>, options?: BlockstoreAbortOptions): AsyncGenerator<CID>;
    getMany(source: BlockstoreSource<CID>, options?: BlockstoreAbortOptions): AsyncGenerator<Pair>;
    getAll(options?: BlockstoreAbortOptions): AsyncGenerator<Pair>;
    deleteMany(source: BlockstoreSource<CID>, options?: BlockstoreAbortOptions): AsyncGenerator<CID>;
    /**
     * deletes all entries
     */
    clear(): Promise<void>;
}
export type BlockstoreLevelConfig = {
    location: string;
    createLevelDatabase?: typeof createLevelDatabase;
};
//# sourceMappingURL=blockstore-level.d.ts.map