import { EventEmitter } from 'events'; import type { PromptCallbacks as ClaudePromptCallbacks, PromptResult as ClaudePromptResult } from '../agent/persistent-cli-process.js'; import type { IModelRunner, RunnerMetrics, PromptOptions } from '../agent/model-runner.js'; export interface AgentRuntimeProcess { sendMessage(content: string, callbacks?: ClaudePromptCallbacks): Promise; isReady(): boolean; stop(): void; getSessionId?(): string; on(event: 'idle' | 'close' | 'error', listener: (...args: unknown[]) => void): this; } export interface CodexRuntimeProcessOptions { model?: string; systemPrompt?: string; cwd?: string; sandbox?: 'read-only' | 'workspace-write' | 'danger-full-access'; requestTimeout?: number; codexHome?: string; mcpConfigPath?: string; command?: string; profile?: string; ephemeral?: boolean; addDirs?: string[]; configOverrides?: string[]; skipGitRepoCheck?: boolean; } /** * Session-persistent Codex wrapper with the same minimal contract used by * multi-agent runtime (sendMessage/isReady/stop + idle events). * * Implements both AgentRuntimeProcess (multi-agent) and IModelRunner (agent-loop). * Uses CodexMCPProcess for persistent MCP communication. */ export declare class CodexRuntimeProcess extends EventEmitter implements AgentRuntimeProcess, IModelRunner { readonly backendType: "codex-mcp"; private wrapper; private state; private stoppedDuringExecution; private _requestCount; private _failureCount; private _totalLatencyMs; private _lastRequestAt; constructor(options: CodexRuntimeProcessOptions); prompt(content: string, callbacks?: ClaudePromptCallbacks, _options?: PromptOptions): Promise; sendMessage(content: string, callbacks?: ClaudePromptCallbacks): Promise; setSessionId(id: string): void; setSystemPrompt(prompt: string): void; isReady(): boolean; isHealthy(): boolean; getMetrics(): RunnerMetrics; stop(): void; getSessionId(): string; } //# sourceMappingURL=runtime-process.d.ts.map