/** * A bash builtin's option scan: letters as typed, then operands. * * `letters` keeps every option letter in the order it was typed, repeats * kept, so a builtin whose flags are mutually exclusive can apply bash's * last-one-wins rule. `bad` is the first invalid option, spelled the way * the refusal spells it, or null when every letter is known. */ export interface OptionScan { letters: readonly string[]; operands: readonly string[]; bad: string | null; } /** * Scan a bash builtin's leading option letters. * * bash builtins take single letters only (`internal_getopt`), which is a * different grammar from the GNU tools `parseShellOptions` serves: * scanning is non-permuting and stops at `--` or the first non-option * word, a token carries options only when it starts with a dash and is * longer than one character, and every character after that dash is a * letter. A long spelling therefore fails on its second dash, which is * why bash refuses `type --foo` as `--` and not as `--foo` (pinned * against bash 5.2, debian:stable-slim). */ export declare function scanOptions(args: readonly string[], known: string): OptionScan; /** * The last of a mutually exclusive letter group, as bash resolves it. * * bash holds such a group in one variable, so the last letter typed * wins: `type -tp` prints a path and `type -pt` a type word, and * `command -vV` is verbose where `command -Vv` is not. */ export declare function lastOf(letters: readonly string[], choices: string): string | null; //# sourceMappingURL=getopt.d.ts.map