export declare enum ActionType {
    ADD = "add",
    DELETE = "delete",
    UPDATE = "update"
}
export interface FileChange {
    type: ActionType;
    old_content?: string | null;
    new_content?: string | null;
    move_path?: string | null;
}
export interface Commit {
    changes: Record<string, FileChange>;
}
export declare function assemble_changes(orig: Record<string, string | null>, updatedFiles: Record<string, string | null>): Commit;
export interface Chunk {
    orig_index: number;
    del_lines: Array<string>;
    ins_lines: Array<string>;
}
export interface PatchAction {
    type: ActionType;
    new_file?: string | null;
    chunks: Array<Chunk>;
    move_path?: string | null;
}
export interface Patch {
    actions: Record<string, PatchAction>;
}
export declare class DiffError extends Error {
}
export declare function text_to_patch(text: string, orig: Record<string, string>): [Patch, number];
export declare function identify_files_needed(text: string): Array<string>;
export declare function identify_files_added(text: string): Array<string>;
export declare function patch_to_commit(patch: Patch, orig: Record<string, string>): Commit;
export declare function load_files(paths: Array<string>, openFn: (p: string) => string): Record<string, string>;
export declare function apply_commit(commit: Commit, writeFn: (p: string, c: string) => void, removeFn: (p: string) => void): void;
export declare function process_patch(text: string, openFn: (p: string) => string, writeFn: (p: string, c: string) => void, removeFn: (p: string) => void): string;
