/** * CLI Options. */ export interface CLIOptions { /** * Regex patterns to exclude actions by name (repeatable). */ exclude?: string[] | string; /** * Whether to include branch references in update checks. */ includeBranches?: boolean; /** * Custom directory name (e.g., '.gitea' instead of '.github'). */ dir?: string[] | string; /** * Recursively scan directories for YAML files. */ recursive?: boolean; /** * Preview changes without applying them. */ dryRun: boolean; /** * Update style (sha or preserve). */ style?: string; /** * Output a machine-readable JSON report. */ json?: boolean; /** * Minimum age in days for updates. */ minAge: number; /** * Update mode (major, minor, patch). */ mode?: string; /** * Skip all confirmations. */ yes: boolean; } /** * Result of parsing CLI arguments. `kind` discriminates what the caller should * do next. */ export type ParseArgumentsResult = { options: CLIOptions; kind: 'options'; } | { message: string; kind: 'error'; } | { kind: 'version'; text: string; } | { kind: 'help'; text: string; }; /** * Parse CLI arguments into normalized options. * * Reproduces the previous cac behavior without its runtime magic: numeric * coercion for `--min-age` and the option defaults are applied manually here, * and kebab-case flags are mapped to the camelCase option shape. * * @param argv - Raw arguments, typically `process.argv.slice(2)`. * @param appVersion - Version string used for `--version`. * @returns A discriminated result describing what the caller should do. */ export declare function parseArguments(argv: string[], appVersion: string): ParseArgumentsResult;