import { Argv } from 'yargs'; import { CLIError } from './core/exceptions'; import { StdinFeatures } from './core/extensions/stdin'; import { CommandHelp, GeneralHelp } from './help'; import { IOutput } from './output'; import { Toolbox } from './toolbox'; export type Features = { sdk?: boolean; query?: 'one' | 'many'; output?: boolean; stdin?: StdinFeatures; [feature: string]: unknown; }; export type Settings

= { description?: string; parameters?: string; group?: string; synopsis?: string; documentation?: string; configuration?: string; usage?: string; features?: Features; disableHelp?: boolean; hidden?: boolean; hints?: string[]; options?(builder: Argv): Argv

; }; export type Handler = ( toolbox: T, params: P ) => Promise; export type CommandResult = { result?: T; help?: GeneralHelp | CommandHelp; error?: CLIError; output?: IOutput; }; export type Command = { settings?: Settings

; run: { /** * @deprecated Please don't access this field. It's for internal use only and a workaround for Gluegun. */ $directus: { settings: Settings

; }; (toolbox: T): R | Promise>; }; };