import { CID } from 'multiformats/cid';
import { check } from '@atproto/common';
import { RepoRecord } from '@atproto/lexicon';
import { BlockMap } from '../block-map';
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<RepoRecord | null>;
    readRecord(cid: CID): Promise<RepoRecord>;
}
export default ReadableBlockstore;
//# sourceMappingURL=readable-blockstore.d.ts.map