import type { SelectEnhancer, ComboboxField, ComboboxListbox, ComboboxOption } from "../index.js"; declare module "solid-js" { // eslint-disable-next-line @typescript-eslint/no-namespace -- Necessary for type declaration merging namespace JSX { interface HTMLElementTags { "select-enhancer": SelectEnhancerHTMLAttributes; "combobox-field": ComboboxFieldHTMLAttributes; "combobox-listbox": HTMLAttributes; "combobox-option": ComboboxOptionHTMLAttributes; } interface SelectEnhancerHTMLAttributes extends HTMLAttributes { comboboxtag?: SelectEnhancer["comboboxTag"]; listboxtag?: SelectEnhancer["listboxTag"]; optiontag?: SelectEnhancer["optionTag"]; } interface ComboboxFieldHTMLAttributes extends HTMLAttributes { disabled?: ComboboxField["disabled"]; filter?: ComboboxField["filter"]; filtermethod?: ComboboxField["filterMethod"]; "attr:filtermethod"?: ComboboxField["filterMethod"]; form?: string; name?: ComboboxField["name"]; nomatchesmessage?: ComboboxField["noMatchesMessage"]; "attr:nomatchesmessage"?: ComboboxField["noMatchesMessage"]; required?: ComboboxField["required"]; valueis?: ComboboxField["valueIs"]; "attr:valueis"?: ComboboxField["valueIs"]; valuemissingerror?: ComboboxField["valueMissingError"]; "attr:valuemissingerror"?: ComboboxField["valueMissingError"]; onFilterchange?: EventHandlerUnion; onfilterchange?: EventHandlerUnion; "on:filterchange"?: EventHandlerWithOptionsUnion; } // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- This is required to support ComboboxField props interface SelectHTMLAttributes extends Omit< ComboboxFieldHTMLAttributes, "onFilterchange" | "onfilterchange" | "on:filterchange" > {} interface ComboboxOptionHTMLAttributes extends HTMLAttributes { disabled?: ComboboxOption["disabled"]; selected?: ComboboxOption["defaultSelected"]; value?: ComboboxOption["value"] | number; } interface ExplicitBoolAttributes { filter?: boolean; disabled?: boolean; required?: boolean; selected?: boolean; } } }