/**
 * CLIProxy Executor Arg Parser
 *
 * Extracted from index.ts (Concern A):
 *   - readOptionValue
 *   - hasGitLabTokenLoginFlag / getGitLabTokenLoginFlagName
 *   - CCS_FLAGS constant + filterCcsFlags()
 *   - parseExecutorFlags() — flag extraction block (lines ~411-639 in original)
 *   - validateFlagCombinations() — cross-flag guard block (lines ~531-585)
 *
 * IMPORTANT: process.exit semantics are kept identical to original index.ts.
 * All console.error messages are byte-identical.
 */
import { type KiroAuthMethod, type KiroIDCFlow } from '../auth/auth-types';
import type { UnifiedConfig } from '../../config/unified-config-types';
import { parseThinkingOverride } from './thinking-arg-parser';
/**
 * Parse a flag value from args supporting both `--flag value` and `--flag=value` forms.
 * Returns the shape used throughout the executor:
 *   { present, value?, missingValue }
 */
export declare function readOptionValue(args: string[], flag: string): {
    present: boolean;
    value?: string;
    missingValue: boolean;
};
/** Returns true if args contain a GitLab token-login flag. */
export declare function hasGitLabTokenLoginFlag(args: string[]): boolean;
/** Returns the specific flag name present in args (used for error messages). */
export declare function getGitLabTokenLoginFlagName(args: string[]): '--gitlab-token-login' | '--token-login';
/**
 * CCS-specific flags that must not be forwarded to the underlying Claude CLI.
 * The list is kept here as the single source of truth (previously inlined in index.ts).
 */
export declare const CCS_FLAGS: readonly string[];
/**
 * Filter all CCS-specific flags (and their value arguments) from args
 * before forwarding to the Claude CLI.
 * Mirrors the filter logic from index.ts lines ~1328-1349.
 */
export declare function filterCcsFlags(args: string[]): string[];
/** Result of parsing CCS executor flags from args. */
export interface ParsedExecutorFlags {
    forceAuth: boolean;
    pasteCallback: boolean;
    portForward: boolean;
    forceHeadless: boolean;
    forceLogout: boolean;
    forceConfig: boolean;
    addAccount: boolean;
    showAccounts: boolean;
    forceImport: boolean;
    gitlabTokenLogin: boolean;
    acceptAgyRisk: boolean;
    incognitoFlag: boolean;
    noIncognitoFlag: boolean;
    noIncognito: boolean;
    useAccount: string | undefined;
    setNickname: string | undefined;
    kiroAuthMethod: KiroAuthMethod | undefined;
    kiroIDCStartUrl: string | undefined;
    kiroIDCRegion: string | undefined;
    kiroIDCFlow: KiroIDCFlow | undefined;
    gitlabBaseUrl: string | undefined;
    extendedContextOverride: boolean | undefined;
    thinkingParse: ReturnType<typeof parseThinkingOverride>;
}
/**
 * Parse all CCS executor flags from args.
 *
 * Exits with code 1 (process.exitCode = 1 + return) on invalid flag values.
 * Exits with process.exit(1) on conflicting flag combinations — identical to
 * the original index.ts behavior.
 *
 * @param args     args AFTER proxy flags have been stripped (argsWithoutProxy)
 * @param context  provider context needed for kiro/incognito defaults
 */
export declare function parseExecutorFlags(args: string[], context: {
    provider: string;
    compositeProviders: string[];
    unifiedConfig: UnifiedConfig;
}): ParsedExecutorFlags;
/**
 * Validate flag combinations that are mutually exclusive or provider-scoped.
 * Calls process.exit(1) on any violation — identical to original index.ts.
 * Call AFTER parseExecutorFlags() and only if process.exitCode is still 0.
 *
 * @param parsed   Result of parseExecutorFlags()
 * @param context  Provider context (provider string + compositeProviders list)
 * @param args     Raw argsWithoutProxy (needed for getGitLabTokenLoginFlagName)
 */
export declare function validateFlagCombinations(parsed: ParsedExecutorFlags, context: {
    provider: string;
    compositeProviders: string[];
}, args: string[]): void;
//# sourceMappingURL=arg-parser.d.ts.map