import { OutputStreamLike } from './recentOutputBuffer'; import { AutomationLogEntry, QuickAutomationRule, QuickCommand } from './types'; export interface ExecutionTarget { title?: string; profile?: { name?: string; }; frontend?: { focus: () => void; }; sendInput: (data: string) => void; output$?: OutputStreamLike; session?: { output$?: OutputStreamLike; } | null; } export interface AutomationRunnerCallbacks { getTargetKey: (target: ExecutionTarget) => string; getTargetName: (target: ExecutionTarget) => string; getCommand: (commandId: string) => QuickCommand | undefined; isDangerous: (command: string) => boolean; isStopped: () => boolean; waitingRuleChanged: (ruleName?: string) => void; log: (level: AutomationLogEntry['level'], message: string, commandId?: string, line?: number, context?: Pick) => void; } export declare class QuickCommandsAutomationRunner { private callbacks; private outputBuffers; constructor(callbacks: AutomationRunnerCallbacks); attach(targets: ExecutionTarget[], outputLimit: number): void; detach(): void; captureCursors(targets: ExecutionTarget[]): Map; run(command: QuickCommand, targets: ExecutionTarget[], candidateRules: QuickAutomationRule[], initialCursors?: Map): Promise; private runForTarget; private waitForRule; private addRuleMatchLog; private executeRuleAction; private executeCommandAction; private executeExistingCommand; private executeCustomCommand; private delay; }