import { CID } from 'multiformats/cid';
import * as crypto from '@atproto/crypto';
import { BlockMap } from './block-map';
import { CidSet } from './cid-set';
import { MST } from './mst';
import { ReadableRepo } from './readable-repo';
import { RepoStorage } from './storage';
import { Commit, CommitData, RecordCreateOp, RecordWriteOp } from './types';
type Params = {
    storage: RepoStorage;
    data: MST;
    commit: Commit;
    cid: CID;
};
export declare class Repo extends ReadableRepo {
    storage: RepoStorage;
    constructor(params: Params);
    static formatInitCommit(storage: RepoStorage, did: string, keypair: crypto.Keypair, initialWrites?: RecordCreateOp[], revOverride?: string): Promise<CommitData>;
    static createFromCommit(storage: RepoStorage, commit: CommitData): Promise<Repo>;
    static create(storage: RepoStorage, did: string, keypair: crypto.Keypair, initialWrites?: RecordCreateOp[]): Promise<Repo>;
    static load(storage: RepoStorage, cid?: CID): Promise<Repo>;
    formatCommit(toWrite: RecordWriteOp | RecordWriteOp[], keypair: crypto.Keypair): Promise<CommitData>;
    applyCommit(commitData: CommitData): Promise<Repo>;
    applyWrites(toWrite: RecordWriteOp | RecordWriteOp[], keypair: crypto.Keypair): Promise<Repo>;
    formatResignCommit(rev: string, keypair: crypto.Keypair): Promise<{
        cid: CID;
        rev: string;
        since: null;
        prev: null;
        newBlocks: BlockMap;
        relevantBlocks: BlockMap;
        removedCids: CidSet;
    }>;
    resignCommit(rev: string, keypair: crypto.Keypair): Promise<Repo>;
}
export default Repo;
//# sourceMappingURL=repo.d.ts.map