type Message = { message: string; }; export type Confirm = Message & { defaultValue?: boolean; abortMessage?: string; }; export type Text = Message & { placeholder?: string; defaultValue?: string; abortMessage?: string; validate?: (value: string) => string | undefined; }; export type MultiText = { text: Text; confirm: Confirm; }; export type SelectOption = Value extends string | boolean | number ? { value: Value; label?: string; hint?: string; } : { value: Value; label: string; hint?: string; }; export type Select