export interface LoopRunOptions { name?: string; projectPath?: string; prompt?: string; command?: string; codexCommand?: string; model?: string; intervalSeconds?: number; maxIterations?: number; timeoutMs?: number; untilFile?: string; stateDir?: string; sandbox?: string; skipGitRepoCheck?: boolean; dryRun?: boolean; onEvent?: (event: LoopEvent) => void; } export interface LoopState { name: string; projectPath: string; mode: 'codex' | 'command'; prompt?: string; command?: string; status: 'idle' | 'running' | 'stopping' | 'completed' | 'failed' | 'stopped'; iteration: number; maxIterations: number; intervalSeconds: number; startedAt: string; updatedAt: string; lastExitCode?: number | null; lastOutput?: string; lastError?: string; untilFile: string; } export interface LoopEvent { type: 'start' | 'iteration-start' | 'iteration-complete' | 'sleep' | 'stop' | 'complete' | 'error' | 'dry-run'; state: LoopState; message?: string; } export interface LoopPaths { stateDir: string; statePath: string; stopPath: string; completePath: string; } export interface LoopCommandResult { code: number | null; signal: NodeJS.Signals | null; stdout: string; stderr: string; } export declare function normalizeLoopName(name?: string): string; export declare function resolveLoopPaths(projectPath: string, name?: string, stateDir?: string): LoopPaths; export declare function loadLoopState(projectPath: string, name?: string, stateDir?: string): Promise; export declare function requestLoopStop(projectPath: string, name?: string, stateDir?: string): Promise; export declare function buildCodexLoopPrompt(state: LoopState): string; export declare function runCodexLoop(options?: LoopRunOptions): Promise; //# sourceMappingURL=index.d.ts.map