import { type RunningChildProcess } from './child-process.js'; import { createClaudeJsonlActivityMapper } from './claude-events.js'; import { ControllerAgentRuntime } from './provider-runtime.js'; import type { ProviderWorkSnapshot } from '../../shared/snapshot.js'; import { AgentRuntimeFollowupInput, AgentRuntimeFollowupResult, AgentRuntimeInput, AgentRuntimeResult, ClaudeCodeAgentProviderConfig } from './contract.js'; export declare class ClaudeCodeAgentRuntime extends ControllerAgentRuntime { readonly command: string; readonly env: Record; readonly kind = "claude-code"; private readonly config; private readonly providerArgs; constructor(config: ClaudeCodeAgentProviderConfig, command: string, providerArgs?: readonly string[]); run(input: AgentRuntimeInput): Promise; appendToActiveRun(input: AgentRuntimeFollowupInput): Promise; private ensureController; private runTurn; private claudeArgs; } declare class ClaudeStreamJsonController { private readonly child; private readonly activeToolUseIds; private readonly activeHookIds; private autoRewakePending; private autoRewakePendingReset?; private backgroundObserver?; private backgroundTaskCount; private visibleBackgroundTaskCount; private readonly stdoutLines; private compacting; private providerTurnOwner?; private providerTurnActive; private stderrText; private currentTurn?; private readonly queuedMessages; private readonly quiescentWaiters; private startedSession; constructor(child: RunningChildProcess); get completion(): Promise<{ stdout: string; stderr: string; }>; hasStartedSession(): boolean; snapshot(): import("../../shared/snapshot.js").ProviderChildHealthSnapshot; workSnapshot(): ProviderWorkSnapshot | undefined; observes(jsonlMapper: ReturnType): boolean; startTurn(input: AgentRuntimeInput, jsonlMapper: ReturnType): Promise; writeUserMessage(text: string): Promise; abortCurrentTurn(error: unknown): void; private sendUserMessage; kill(signal?: NodeJS.Signals): void; waitForQuiescent(signal?: AbortSignal): Promise; isQuiescent(): boolean; acceptStdoutChunk(chunk: string): Promise; acceptStderrChunk(chunk: string): Promise; private parseStdoutLine; private acceptStdoutValue; private resolveCurrentTurn; private rejectCurrentTurn; private flushQueuedMessages; private inputGateClosed; private outputSink; private updateInputGate; private resolveQuiescentWaitersIfReady; private markAutoRewakePending; private clearAutoRewakePending; private clearBackgroundObserver; private rejectQuiescentWaiters; private rejectQueuedMessages; } export {}; //# sourceMappingURL=claude.d.ts.map