import { EventEmitter } from 'node:events'; import type { AdapterSessionConfig, BaseProviderAdapter, ConversationMessage, SessionStatus } from './types.js'; export declare class CodexSdkAdapter extends EventEmitter implements BaseProviderAdapter { readonly providerId = "codex"; readonly displayName = "Codex"; private sessions; private listenerWakeHooks; private sdkModule?; startSession(sessionId: string, config: AdapterSessionConfig): Promise; sendMessage(sessionId: string, message: string): Promise; sendConfirmation(_sessionId: string, _accept: boolean): Promise; sendQuestionAnswer(_sessionId: string, _answers: Record): Promise; setIdleCommands(sessionId: string, commands: { idleInputCommand: string; nonInputCommand: string; }): void; abortCurrentTurn(sessionId: string): Promise; terminateSession(sessionId: string): Promise; resumeSession(sessionId: string, providerSessionId: string, config: AdapterSessionConfig): Promise; getConversation(sessionId: string): ConversationMessage[]; hasSession(sessionId: string): boolean; getProviderSessionId(sessionId: string): string | undefined; getSessionStatus(sessionId: string): SessionStatus | undefined; getSessionPid(_sessionId: string): number | undefined; cleanup(): void; private loadSdk; private buildCodexOptions; private warnUnsupportedMcpConfig; private buildThreadOptions; private runTurn; private handleThreadEvent; private handleThreadItem; private emitTextDelta; private emitReasoningDelta; private handleToolLikeItem; private completeTurn; private emitEvent; private startIdleDetection; private stopIdleDetection; private checkIdleState; private sendIdlePrompt; private toIdlePrompt; private isMessagePollingIdleCommand; }