import { type ReflectionCheckpointInfo } from "./loop-config"; import type { ExtensionCommandContext } from "@mariozechner/pi-coding-agent"; import type { LoopRun, PhaseRun } from "./types"; export type LoopSelection = { loop?: LoopRun; cancelled?: boolean; }; export type LoopControllerDeps = { loops: Map; phaseRuns: Map; activePhaseBySession: Map; commandContextByRun: Map; restoreStateFromSession: (ctx: ExtensionCommandContext) => void; persistState: (ctx: ExtensionCommandContext) => void; updateLoopStatusLine: (ctx: ExtensionCommandContext) => void; deactivateLoop: (loop: LoopRun) => void; appendRalphiEvent: (kind: string, data: Record) => void; sendProgressMessage: (text: string, details?: Record) => void; sendUserMessage: (ctx: ExtensionCommandContext, text: string, deliveryWhenBusy?: "steer" | "followUp") => void; appendLoopAutoCompletionNote: (cwd: string, loopId: string, iteration: number) => void; ensureLoopPrerequisites: (ctx: ExtensionCommandContext) => Promise; ensureLoopBranch: (ctx: ExtensionCommandContext) => Promise; ensureProgressFileForCurrentPrd: (cwd: string) => { rotated: boolean; archivePath?: string; branchName?: string; }; reflectionCheckpointInfo: (cwd: string, iteration: number) => ReflectionCheckpointInfo | null; renderReflectionPromptBlock: (iteration: number, info: ReflectionCheckpointInfo) => string; sessionKey: (ctx: ExtensionCommandContext) => string; shortId: (prefix: string) => string; setSessionName: (name: string) => void; setLabel: (targetId: string, label: string) => void; setSuppressEventRestore: (value: boolean) => void; prdFileName: string; progressFileName: string; }; export declare class LoopController { private readonly deps; constructor(deps: LoopControllerDeps); private withSuppressedEventRestore; private resolveLoopSelection; runLoopIteration(ctx: ExtensionCommandContext, loopId: string): Promise; startLoop(ctx: ExtensionCommandContext, args: string): Promise; stopLoop(ctx: ExtensionCommandContext, requested: string): Promise; openLoop(ctx: ExtensionCommandContext, requested: string): Promise; openLoopController(ctx: ExtensionCommandContext, requested: string): Promise; showLoopStatus(ctx: ExtensionCommandContext): void; } //# sourceMappingURL=loop-controller.d.ts.map