export interface SelectOption { value: T; label: string; hint?: string; } export interface MultiSelectOption extends SelectOption { selected?: boolean; } export interface ProgressHandle { update(message: string): void; stop(message?: string): void; } export interface WizardPrompter { intro(message: string): void; outro(message: string): void; note(message: string, title?: string): void; log(message: string): void; warn(message: string): void; text(opts: { message: string; placeholder?: string; defaultValue?: string; validate?: (value: string) => string | void; }): Promise; confirm(opts: { message: string; initialValue?: boolean; }): Promise; select(opts: { message: string; options: SelectOption[]; initialValue?: T; }): Promise; multiselect(opts: { message: string; options: MultiSelectOption[]; required?: boolean; }): Promise; groupMultiselect(opts: { message: string; options: Record[]>; required?: boolean; }): Promise; spinner(): ProgressHandle; separator(): void; }