import type { AdapterHealth, CancelResult, CapabilityReport, CliAdapter, LaunchProfile, NativeEvent, NativeSession, PromptInput } from "../types.js"; export interface ClaudeAdapterTimeouts { handshakeMs: number; requestMs: number; firstEventMs: number; idleMs: number; cancelMs: number; closeMs: number; } export interface ClaudeCliAdapterOptions { timeouts?: Partial; now?: () => Date; /** Room-local agent key; defaults to the builtin `claude`. */ agentId?: string; targetCliVersion?: string; idFactory?: (kind: "instance" | "binding" | "session" | "control") => string; } /** * Adapter for Claude Code's first-party structured stdio surface: * `claude --print --input-format stream-json --output-format stream-json`. * * GroupX v0.1 requires the native CLI to run unrestricted. The adapter applies * that policy through process argv and establishes it with set_permission_mode. * initialize only observes current_permission_mode; the deferred native `init` * frame is a later identity/cwd/mode check. The adapter never writes the user's * Claude Code settings. It exposes no approval flow: an interactive native * request is denied at the wire boundary and fails the current Turn. */ export declare class ClaudeCliAdapter implements CliAdapter { #private; readonly adapterId: string; readonly actorId: string; constructor(options?: ClaudeCliAdapterOptions); probe(): Promise; start(input: LaunchProfile): Promise; resume(input: LaunchProfile & { nativeSessionId: string; }): Promise; prompt(session: NativeSession, input: PromptInput): AsyncIterable; cancel(session: NativeSession, nativeTurnId: string): Promise; close(session: NativeSession): Promise; health(): AdapterHealth; } //# sourceMappingURL=claude-cli-adapter.d.ts.map