import { check } from '@atproto/common-web';
import { Cid, LexMap } from '@atproto/lex-data';
import { BlockMap } from '../block-map.js';
export declare abstract class ReadableBlockstore {
    abstract getBytes(cid: Cid): Promise<Uint8Array | null>;
    abstract has(cid: Cid): Promise<boolean>;
    abstract getBlocks(cids: Cid[]): Promise<{
        blocks: BlockMap;
        missing: Cid[];
    }>;
    attemptRead<T>(cid: Cid, def: check.Def<T>): Promise<{
        obj: T;
        bytes: Uint8Array;
    } | null>;
    readObjAndBytes<T>(cid: Cid, def: check.Def<T>): Promise<{
        obj: T;
        bytes: Uint8Array;
    }>;
    readObj<T>(cid: Cid, def: check.Def<T>): Promise<T>;
    attemptReadRecord(cid: Cid): Promise<LexMap | null>;
    readRecord(cid: Cid): Promise<LexMap>;
}
export default ReadableBlockstore;
//# sourceMappingURL=readable-blockstore.d.ts.map