import { spawn as nodeSpawn } from "node:child_process"; import type { DriverEventEnvelope, RuntimeDriver, RuntimeDriverRunHandle, RuntimeDriverRunInput, StartSessionInput } from "../types.js"; export declare function coerceClaudeCliSessionId(rawId: string): string; type SpawnFn = typeof nodeSpawn; export interface ClaudeCliDriverOptions { spawn?: SpawnFn; executable?: string; /** @deprecated Use `defaultSecurityMode`. Legacy values still honored. */ defaultPermissionMode?: StartSessionInput["permissionMode"]; defaultSecurityMode?: StartSessionInput["securityMode"]; } export declare function buildClaudeCliCommand(input: { sessionId: string; prompt: string; cwd: string; model?: string; name?: string; appendSystemPrompt?: string; /** * The literal `--permission-mode` value forwarded to the claude CLI. The * driver resolves this from {@link RuntimeDriverRunInput.securityMode} * (yolo → bypassPermissions, safe → default) before calling. */ permissionMode?: StartSessionInput["permissionMode"]; tools?: string[]; additionalDirectories?: string[]; resumeSessionId?: string; /** Native claude CLI vocabulary; runtime driver folds before calling. */ effort?: "low" | "medium" | "high" | "xhigh" | "max"; }): string[]; export declare class ClaudeCliDriver implements RuntimeDriver { readonly name: "claude-cli"; private readonly spawnFn; private readonly executable; private readonly defaultSecurityMode; constructor(options?: ClaudeCliDriverOptions); run(input: RuntimeDriverRunInput, onEventRaw: (event: DriverEventEnvelope) => Promise | void): RuntimeDriverRunHandle; } export {};