import type { YnabClient } from "../ynab/client.js"; import type { UndoStore } from "./store.js"; import type { PendingOperation, UndoEntry, UndoExecutionResult, UndoOperationType } from "./types.js"; interface RecordUndoEntryInput { operation: UndoOperationType; description: string; undo_action: UndoEntry["undo_action"]; } interface RecordIdMappingInput { sourceEntityId: string; targetEntityId: string; } interface UndoResult { results: UndoExecutionResult[]; summary: { undone: number; conflicts: number; skipped: number; errors: number; }; } export declare class UndoEngine { private readonly client; private readonly store; constructor(client: YnabClient, store: UndoStore); updateIdMappings(budgetId: string, oldId: string, newId: string): Promise; recordEntries(budgetId: string, entries: RecordUndoEntryInput[], idMappings?: RecordIdMappingInput[]): Promise; markPending(budgetId: string, description: string): Promise; clearPending(budgetId: string, pendingId: string): Promise; listHistory(budgetId: string, limit: number, includeUndone?: boolean): Promise<{ entries: UndoEntry[]; pendingOperations: PendingOperation[]; }>; undoOperations(entryIds: string[], force: boolean): Promise; private extractBudgetId; private undoSingleEntry; private detectConflict; private applyUndo; private applyTransactionUndo; private applyScheduledTransactionUndo; private applyCategoryBudgetUndo; private getCurrentState; } export {};