/**
 * @fileoverview Pure functions for building CLI arguments and environment variables
 * for Claude and OpenCode CLI spawning.
 *
 * Extracted from Session to keep argument construction logic testable and
 * separate from PTY lifecycle management.
 *
 * @module session-cli-builder
 */
import type { ClaudeMode, EffortLevel } from './types.js';
/**
 * Build the CLI args carrying the effort level as a SOFT default (switchable
 * in-session via /effort). The CLAUDE_CODE_EFFORT_LEVEL env var is deliberately
 * avoided — it hard-locks effort and blocks in-session `/effort` switching.
 *
 * Two carriers are needed because neither covers all levels:
 * - regular levels (incl. `max`) → `--effort <level>` (the settings `effortLevel`
 *   key is enum(["low","medium","high","xhigh"]) with .catch(undefined), so `max`
 *   would be SILENTLY dropped there)
 * - `ultracode` → `--settings '{"ultracode":true}'` (its own boolean settings key,
 *   claude >= 2.1.154; rejected by the --effort flag)
 */
export declare function buildEffortCliArgs(effort?: EffortLevel): string[];
/**
 * Build args for an interactive Claude CLI session (direct PTY, non-mux fallback).
 *
 * @param sessionId - The Codeman session ID (passed as --session-id to Claude)
 * @param claudeMode - Permission mode for the CLI
 * @param model - Optional model override (e.g., 'opus', 'sonnet')
 * @param allowedTools - Optional comma-separated allowed tools list
 * @param effort - Optional effort level, injected via --settings (overridable in-session)
 * @returns Array of CLI arguments
 */
export declare function buildInteractiveArgs(sessionId: string, claudeMode: ClaudeMode, model?: string, allowedTools?: string, effort?: EffortLevel): string[];
/**
 * Build args for a one-shot Claude CLI prompt (runPrompt mode).
 *
 * @param prompt - The prompt text to send
 * @param model - Optional model override
 * @returns Array of CLI arguments
 */
export declare function buildPromptArgs(prompt: string, model?: string): string[];
/**
 * Build environment variables for Claude CLI processes (direct PTY, non-mux).
 *
 * Augments process.env with:
 * - UTF-8 locale settings
 * - Augmented PATH (includes Claude CLI directory)
 * - xterm-256color terminal type
 * - Codeman session identification vars
 *
 * @param sessionId - The Codeman session ID
 * @returns Environment variables object for pty.spawn
 */
export declare function buildClaudeEnv(sessionId: string): Record<string, string | undefined>;
/**
 * Build environment variables for mux-attached PTY sessions (tmux attach).
 * Lighter than buildClaudeEnv — no PATH augmentation or Codeman vars needed
 * since the mux session already has those set.
 *
 * @returns Environment variables object for pty.spawn
 */
export declare function buildMuxAttachEnv(): Record<string, string | undefined>;
/**
 * Build environment variables for a direct shell session (non-mux fallback).
 *
 * @param sessionId - The Codeman session ID
 * @returns Environment variables object for pty.spawn
 */
export declare function buildShellEnv(sessionId: string): Record<string, string | undefined>;
//# sourceMappingURL=session-cli-builder.d.ts.map