import { FileSnapshot } from "../types/reversion.js"; import { Container } from "../utils/container.js"; export declare class ReversionManager { private container; private buffer; constructor(container: Container); private get reversionService(); /** * Records the current state of a file into a temporary buffer. * Returns a snapshotId. */ recordSnapshot(messageId: string, filePath: string, operation: "create" | "modify" | "delete"): Promise; /** * Records the current state of a file into a temporary buffer. * Returns a snapshotId. */ recordSnapshotWithId(messageId: string, filePath: string, operation: "create" | "modify" | "delete"): Promise; /** * Moves the buffered snapshot to the permanent session log. * Called only if the tool succeeds. */ commitSnapshot(snapshotId: string): Promise; private committedSnapshots; /** * Gets and clears committed snapshots for the current turn. */ getAndClearCommittedSnapshots(): FileSnapshot[]; /** * Discards the buffered snapshot. * Called if the tool fails. */ discardSnapshot(snapshotId: string): void; /** * Reverts all file changes associated with messages from the end of history * down to (and including) the specified message index. * This should be called by MessageManager. */ revertTo(messageIds: string[], allMessages: import("../types/index.js").Message[]): Promise; }