import { BaseBlockstore } from './base.js';
import type { Blockstore, Pair } from 'interface-blockstore';
import type { AbortOptions, AwaitIterable } from 'interface-store';
import type { CID } from 'multiformats/cid';
/**
 * A blockstore that can combine multiple stores. Puts and deletes
 * will write through to all blockstores. Has and get will
 * try each store sequentially. getAll will use every store but also
 * deduplicate any yielded pairs.
 */
export declare class TieredBlockstore extends BaseBlockstore {
    private readonly stores;
    constructor(stores: Blockstore[]);
    put(key: CID, value: Uint8Array, options?: AbortOptions): Promise<CID>;
    get(key: CID, options?: AbortOptions): Promise<Uint8Array>;
    has(key: CID, options?: AbortOptions): Promise<boolean>;
    delete(key: CID, options?: AbortOptions): Promise<void>;
    putMany(source: AwaitIterable<Pair>, options?: AbortOptions): AsyncIterable<CID>;
    deleteMany(source: AwaitIterable<CID>, options?: AbortOptions): AsyncIterable<CID>;
    getAll(options?: AbortOptions): AwaitIterable<Pair>;
}
//# sourceMappingURL=tiered.d.ts.map