export interface CliCommandOption { long: string; short?: string; description: string; required?: boolean; defaultValue?: any; subOptions?: CliCommandOption[]; interactiveId?: string; interactiveCategory?: string; interactiveFn?: () => Promise; } export interface CliCommandArgument { name: string; description: string; required?: boolean; } export interface CliCommandDefinition { name: string; description: string; arguments?: CliCommandArgument[]; options?: CliCommandOption[]; action: (...args: any[]) => Promise; } export interface CliCommandConfig { commands: CliCommandDefinition[]; }