import { Effect } from 'effect';
import type { EngineRuntimeState, TransactionRecord } from '../runtime-state.js';
import { EngineHistoryError } from '../errors.js';
export interface EngineHistoryService {
    readonly undo: () => Effect.Effect<boolean, EngineHistoryError>;
    readonly redo: () => Effect.Effect<boolean, EngineHistoryError>;
}
export declare function createEngineHistoryService(args: {
    readonly state: Pick<EngineRuntimeState, 'undoStack' | 'redoStack' | 'getTransactionReplayDepth' | 'setTransactionReplayDepth'>;
    readonly executeTransaction: (transaction: TransactionRecord, source: 'undo' | 'redo') => void;
}): EngineHistoryService;
