declare type TypeableInputs = 'number' | 'text' | 'search'; declare type DropdownInputs = 'select'; declare type BooleanInputs = 'checkbox' | 'radio'; declare type DateTimeInputs = 'date' | 'month' | 'week' | 'time' | 'datetime-local'; declare type NumericInputs = 'range' | 'number'; declare type CharacterInputs = Exclude; declare type InputTypes = (TypeableInputs | DropdownInputs | BooleanInputs | NumericInputs | DateTimeInputs); declare type TypeableAttributes = Partial<{ placeholder: string; }>; declare type DropdownAttributes = { options: Record | T[]; multiple?: boolean; autoFocus?: boolean; size?: number; }; declare type NumericAttributes = Partial<{ min: number; max: number; step: number; }>; declare type BooleanAttributes = {}; declare type DateTimeAttributes = Partial<{ min: string; max: string; step: number; }>; declare type CharacterAttributes = Partial<{ pattern: string; maxlength: number; minlength: number; size: number; spellcheck: boolean; }>; declare type Input = { type: Type; name: string; } & Partial<{ value: Value; label: string; disabled: boolean; }>; declare type Extends = T extends U ? K : unknown; declare type AdditionalAttributes = (Extends & Extends> & Extends & Extends & Extends & Extends); declare type Attributes = Input & AdditionalAttributes; declare type NumberInput = Attributes<'number', number>; declare type TextInput = Attributes<'text', string>; declare type SearchInput = Attributes<'search', string>; declare type SelectInput = Attributes<'select', string | number>; declare type CheckboxInput = Attributes<'checkbox', boolean>; declare type RadioInput = Attributes<'radio', boolean>; declare type DateInput = Attributes<'date', string>; declare type MonthInput = Attributes<'month', string>; declare type WeekInput = Attributes<'week', string>; declare type TimeInput = Attributes<'time', string>; declare type DateTimeInput = Attributes<'datetime-local', string>; declare type RangeInput = Attributes<'range', number>; export declare type Inputs = (NumberInput | TextInput | SearchInput | SelectInput | CheckboxInput | RadioInput | DateInput | MonthInput | WeekInput | TimeInput | DateTimeInput | RangeInput); export {};