export type FlagType = "string" | "number" | "boolean"; export type FlagSpec = { type: FlagType; short?: string; default?: string | number | boolean; required?: boolean; description?: string; choices?: string[]; hidden?: boolean; optional?: boolean; }; export type FlagGroups = { exclusive?: string[][]; requiredTogether?: string[][]; }; export type ArgsSchema = { programName?: string; description?: string; version?: string; epilog?: string; flags: Record; groups?: FlagGroups; }; export type FlagValues = Record; export type RawFlagValues = Record; export type NormalizedGroups = Required; export type ParsedArgs = { flags: FlagValues; positionals: string[]; }; export type NormalizedFlag = Required> & { name: string; short: string | null; default: string | number | boolean | null; choices: string[] | null; optional: boolean; }; export type NormalizedSchema = { programName: string; description: string | null; version: string | null; epilog: string | null; flags: NormalizedFlag[]; flagsByName: Record; flagsByShort: Record; groups: NormalizedGroups; autoHelp: boolean; autoVersion: boolean; }; export type ParseError = { kind: "unknownLong"; flag: string; } | { kind: "unknownShort"; flag: string; } | { kind: "missingValue"; flag: string; } | { kind: "missingRequired"; flag: string; } | { kind: "invalidNumber"; flag: string; raw: string; } | { kind: "invalidChoice"; flag: string; raw: string; choices: string[]; } | { kind: "booleanTakesNoValue"; flag: string; } | { kind: "greedyValue"; flag: string; raw: string; } | { kind: "shortEqualsSyntax"; raw: string; suggestion: string; } | { kind: "duplicateFlag"; flag: string; } | { kind: "mutuallyExclusive"; a: string; b: string; } | { kind: "requiredTogether"; missing: string; trigger: string; }; export type ParseResult = { ok: true; value: T; } | { ok: false; error: ParseError; }; export declare function validateSchema(schema: ArgsSchema): void; export declare function normalizeSchema(schema: ArgsSchema): NormalizedSchema; export declare function expandOptionalFlags(argv: string[], schema: NormalizedSchema): string[]; export declare function preScanArgv(argv: string[], schema: NormalizedSchema): ParseResult; type NodeParseOutput = { flags: RawFlagValues; positionals: string[]; }; export declare function callNodeParse(argv: string[], schema: NormalizedSchema): ParseResult; export declare function parseStrictNumber(raw: string): number | null; export declare function coerceValues(parsed: RawFlagValues, schema: NormalizedSchema): ParseResult; export declare function applyDefaults(parsed: FlagValues, schema: NormalizedSchema): ParseResult; export declare function checkGroups(parsed: Record, schema: NormalizedSchema): ParseResult; export declare function formatHelp(schema: NormalizedSchema): string; export declare function formatError(error: ParseError, schema: NormalizedSchema): string; export declare function _parseArgs(schema: ArgsSchema): ParsedArgs; export declare function _parseArgsWith(argv: string[], schema: ArgsSchema): ParsedArgs; export {};