import type { AssertionOptions, CommandMatcher, CommandMatcherBuilderLike, CommandValueMatcher, Matcher, StructuredCommandMatcher } from "./types.js"; type ParsedCommandValue = string | true; interface ParsedCommand { raw: string; executable?: string; positionals: readonly string[]; options: ReadonlyMap; endOfOptions: boolean; normalizedFromShell: boolean; } export declare class CommandMatcherBuilder implements CommandMatcherBuilderLike { private executableMatcher?; private readonly positionalMatchers; private readonly optionMatchers; private hasEndOfOptions?; private isStrict; constructor(executable?: Matcher); executable(matcher: Matcher): this; arg(matcher: Matcher): this; args(...matchers: readonly Matcher[]): this; option(name: string, value?: CommandValueMatcher): this; flag(name: string): this; endOfOptions(): this; exact(): this; strict(): this; build(): StructuredCommandMatcher; } export declare function commandMatcher(executable?: Matcher): CommandMatcherBuilder; export declare function parseCommand(command: string): ParsedCommand; export declare function describeCommandMatcher(matcher: CommandMatcher): string; export declare function matchesCommand(command: string, matcher: CommandMatcher): boolean; export declare function firstCommandMatchIndex(commands: readonly string[], matcher: CommandMatcher): number; export declare function countCommandMatches(commands: readonly string[], matcher: CommandMatcher): number; export declare function assertCommandIncludes(commands: readonly string[], matcher: CommandMatcher, options?: AssertionOptions): void; export declare function assertCommandNotIncludes(commands: readonly string[], matcher: CommandMatcher, options?: AssertionOptions): void; export declare function assertCommandCount(commands: readonly string[], matcher: CommandMatcher, expected: number, options?: AssertionOptions): void; export declare function assertCommandAtLeast(commands: readonly string[], matcher: CommandMatcher, min: number, options?: AssertionOptions): void; export declare function assertCommandAtMost(commands: readonly string[], matcher: CommandMatcher, max: number, options?: AssertionOptions): void; export declare function assertCommandBefore(commands: readonly string[], firstMatcher: CommandMatcher, secondMatcher: CommandMatcher, options?: AssertionOptions): void; export declare function assertCommandOnly(commands: readonly string[], matchers: readonly CommandMatcher[], options?: AssertionOptions): void; export declare function assertCommandFirst(commands: readonly string[], matcher: CommandMatcher, options?: AssertionOptions): void; export declare function assertCommandLast(commands: readonly string[], matcher: CommandMatcher, options?: AssertionOptions): void; export {};