/**
 * CLI argument parsing and normalization utilities.
 *
 * Extracted from src/ccs.ts (lines 129-244, 246-296, 371-392).
 * Pure functions — no side effects except console.error and process.exit.
 *
 * Also contains bootstrapAndParseEarlyCli() — the Phase A bootstrap extracted
 * from main() (lines 128-232 of the original). Handles: adapter registration,
 * UI init, --config-dir flag, cloud-sync warnings, completion short-circuit,
 * normalizeLegacyCursorArgs, resolveBrowserLaunchFlagResolution, codex passthrough.
 */
import type { ProfileDetectionResult } from '../auth/profile-detector';
import type { BrowserLaunchOverride } from '../utils/browser';
/**
 * Result of the early CLI bootstrap pass.
 * All fields are consumed by main() to decide how to continue.
 */
export interface DispatcherBootstrap {
    /** Normalized/mutated args after pre-parse (--config-dir stripped, browser flags stripped, legacy cursor normalized) */
    args: string[];
    isCompletionCommand: boolean;
    browserLaunchOverride: BrowserLaunchOverride | undefined;
    /** true when the caller should return immediately (completion handled, codex passthrough triggered, process.exit called) */
    exitNow: boolean;
}
/**
 * Phase A bootstrap: runs everything that must happen before config loading and profile detection.
 *
 * Side-effects preserved from original main():
 * - Dynamic import of initUI
 * - setGlobalConfigDir (--config-dir flag)
 * - Cloud-sync warnings
 * - Completion short-circuit via tryHandleRootCommand
 * - Codex native passthrough via execNativeCodexCommand
 *
 * Adapter registration (registerTarget calls) stays in main() because it is
 * singleton wiring with no dependency on the parsed args.
 */
export declare function bootstrapAndParseEarlyCli(rawArgs: string[]): Promise<DispatcherBootstrap>;
export interface DetectedProfile {
    profile: string;
    remainingArgs: string[];
}
export interface RuntimeReasoningResolution {
    argsWithoutReasoningFlags: string[];
    reasoningOverride: string | number | undefined;
    reasoningSource: 'flag' | 'env' | undefined;
    sourceDisplay: string | undefined;
}
export declare const CODEX_RUNTIME_REASONING_LEVELS: Set<string>;
export declare const CODEX_NATIVE_PASSTHROUGH_FLAGS: Set<string>;
export declare const CODEX_NATIVE_PASSTHROUGH_SUBCOMMANDS: Set<string>;
export declare const NATIVE_CLAUDE_EFFORT_LEVELS: readonly ["low", "medium", "high", "xhigh", "max"];
export declare const NATIVE_CLAUDE_EFFORT_LEVEL_SET: Set<string>;
/**
 * Smart profile detection — first non-flag arg is the profile name.
 */
export declare function detectProfile(args: string[]): DetectedProfile;
export declare function normalizeLegacyCursorArgs(args: string[]): string[];
export declare function printCursorLegacySubcommandDeprecation(subcommand: string): void;
export declare function resolveRuntimeReasoningFlags(args: string[], envThinkingValue: string | undefined): RuntimeReasoningResolution;
export declare function normalizeCodexRuntimeReasoningOverride(value: string | number | undefined): string | undefined;
export declare function exitWithRuntimeReasoningFlagError(message: string, options: {
    codexAliasLevels: string;
    includeDroidExecExample?: boolean;
}): never;
export declare function normalizeNativeClaudeEffortArgs(args: string[]): string[];
export declare function shouldNormalizeNativeClaudeEffort(profileType: ProfileDetectionResult['type']): boolean;
export declare function shouldPassthroughNativeCodexCommand(args: string[]): boolean;
export declare function getNativeCodexPassthroughArgs(args: string[]): string[] | null;
//# sourceMappingURL=cli-argument-parser.d.ts.map