import { ExecutionTarget } from './automationRunner'; import { AutomationLogEntry, ExecutionMode, FailureStrategy, QuickCommand } from './types'; export { ExecutionTarget } from './automationRunner'; export interface ExecutionRunState { commandId: string; startedAt: string; currentStep: number; totalSteps: number; sourceLine: number; paused: boolean; stopped: boolean; waitingManual: boolean; waitingRuleName?: string; manualResolver?: () => void; } export interface ExecutionRunnerCallbacks { getTargetKey: (target: ExecutionTarget) => string; getTargetName: (target: ExecutionTarget) => string; getCommand: (commandId: string) => QuickCommand | undefined; isDangerous: (command: string) => boolean; log: (level: AutomationLogEntry['level'], message: string, commandId?: string, line?: number, context?: Pick) => void; warn: (message: string, error: unknown) => void; stateChanged: (state: ExecutionRunState, pendingFailureMessage: string) => void; } export declare class QuickCommandsExecutionRunner { private callbacks; private state?; private pendingFailureMessage; private automationRunner; constructor(callbacks: ExecutionRunnerCallbacks); start(command: QuickCommand, mode: ExecutionMode): ExecutionRunState; execute(command: QuickCommand, targets: ExecutionTarget[], mode: ExecutionMode, failureStrategy: FailureStrategy, outputLimit: number): Promise; pause(): void; resume(): void; stop(): void; resolveManualFailure(stop: boolean): void; getDuration(): number | undefined; dispose(): void; private executeBlock; private executeLineByLine; private executeStep; private handleStepFailure; private waitWhilePaused; private delayWithControl; private notifyStateChanged; private delay; }