type FlagArgs = Record; type FlagSpec = { consume( argv: readonly string[], index: number, args: T, ): { flag?: string; nextIndex: number; repeatable?: boolean; apply(target?: T): void; } | null; }; export function readFlagValue(args: readonly string[], name: string): string | undefined; export function stripLeadingPackageManagerSeparator(argv: string[]): string[]; export function stringFlag( flag: string, key: string, options?: { rejectShortOptions?: boolean }, ): FlagSpec; export function stringListFlag( flag: string, key: string, options?: { rejectShortOptions?: boolean }, ): FlagSpec; export function intFlag( flag: string, key: string, options?: { min?: number }, ): FlagSpec; export function floatFlag( flag: string, key: string, options?: { includeMin?: boolean; min?: number }, ): FlagSpec; export function booleanFlag( flag: string, key: string, value?: unknown, ): FlagSpec; export function parseFlagArgs( argv: readonly string[], args: T, specs: readonly FlagSpec[], options?: { allowUnknownOptions?: boolean; ignoreDoubleDash?: boolean; onUnhandledArg?: (arg: string, args: T) => "handled" | void; }, ): T;