import type { Change, ChangeFile, ChangesBatch } from '../source/Change.js';
import type { ReadonlyTree } from '../source/Tree.js';
import type { RemoveFileMutation, UploadFileMutation } from './Mutation.js';
export interface AddContent extends ChangeFile {
    op: 'addContent';
    contents: string;
}
export interface DeleteContent extends ChangeFile {
    op: 'deleteContent';
}
export type CommitChange = AddContent | DeleteContent | UploadFileMutation | RemoveFileMutation;
export declare function commitChanges(changes: Array<Change>): Array<CommitChange>;
export declare function sourceChanges(request: CommitRequest): ChangesBatch;
export interface CommitRequest {
    description: string;
    fromSha: string;
    intoSha: string;
    checks: Array<[path: string, sha: string]>;
    changes: Array<CommitChange>;
}
export declare function checkCommit(tree: ReadonlyTree, request: CommitRequest): void;
