import { Command, ParseOptions } from 'commander'; type CompletionRuleValue = ((args?: string[]) => string[]) | string[]; interface CompletionRules { options?: Record; args?: Record; } type NormalizedCompletionRule = { arity?: number; sibling?: string; reply?: any[]; }; interface NormalizedCompletionRules { options?: Record; args?: any[]; } declare class BaseCommand extends Command { _completionRules: CompletionRules; complete(rules: CompletionRules & { arguments?: CompletionRules['args']; }): this; hasCompletionRules(): boolean; autocomplete(argv: any): this; getAutocompleteSubCommand(event: any, elements: string[], commandName: string, commandArgs: string[]): this; autocompleteHandleEvent(event: any): void; autocompleteCandidates(typedArgs: any[]): any[]; autocompleteNormalizeRules(): NormalizedCompletionRules; parse(argv?: readonly string[], parseOptions?: ParseOptions): this; parseAsync(argv?: readonly string[], parseOptions?: ParseOptions): Promise; } export { BaseCommand, type CompletionRuleValue, type CompletionRules, type NormalizedCompletionRule, type NormalizedCompletionRules };