import { Config } from '@cli-engine/config'; import { flags } from 'cli-flags'; export interface ICompletionContext { args?: { [name: string]: string; }; flags?: { [name: string]: string; }; argv?: string[]; config: Config; } export interface ICompletion { skipCache?: boolean; cacheDuration?: number; cacheKey?: (ctx: ICompletionContext) => Promise; options: (ctx: ICompletionContext) => Promise; } export interface IOptionFlag extends flags.IOptionFlag { completion?: ICompletion; } export declare type IFlag = flags.IBooleanFlag | IOptionFlag; export interface Input { [k: string]: IFlag; } export declare type Definition = (options?: Partial>) => IOptionFlag; export declare function option(defaults?: Partial>): Definition; export declare function string(defaults?: Partial): IOptionFlag; export { boolean } from 'cli-flags/lib/flags';