import * as crypto from '@atproto/crypto';
import { Cid } from '@atproto/lex-data';
import { BlockMap } from './block-map.js';
import { CidSet } from './cid-set.js';
import { MST } from './mst/index.js';
import { ReadableRepo } from './readable-repo.js';
import { RepoStorage } from './storage/index.js';
import { Commit, CommitData, RecordCreateOp, RecordWriteOp } from './types.js';
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<0 | 1, number, number>;
        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