/// <reference types="../index.d.ts" />
import type { Accordion } from "../components/calcite-accordion/customElement.js";
import type { AccordionItem } from "../components/calcite-accordion-item/customElement.js";
import type { Action } from "../components/calcite-action/customElement.js";
import type { ActionBar } from "../components/calcite-action-bar/customElement.js";
import type { ActionGroup } from "../components/calcite-action-group/customElement.js";
import type { ActionMenu } from "../components/calcite-action-menu/customElement.js";
import type { ActionPad } from "../components/calcite-action-pad/customElement.js";
import type { Alert } from "../components/calcite-alert/customElement.js";
import type { Autocomplete } from "../components/calcite-autocomplete/customElement.js";
import type { AutocompleteItem } from "../components/calcite-autocomplete-item/customElement.js";
import type { AutocompleteItemGroup } from "../components/calcite-autocomplete-item-group/customElement.js";
import type { Avatar } from "../components/calcite-avatar/customElement.js";
import type { Block } from "../components/calcite-block/customElement.js";
import type { BlockGroup } from "../components/calcite-block-group/customElement.js";
import type { BlockSection } from "../components/calcite-block-section/customElement.js";
import type { Button } from "../components/calcite-button/customElement.js";
import type { Card } from "../components/calcite-card/customElement.js";
import type { CardGroup } from "../components/calcite-card-group/customElement.js";
import type { Carousel } from "../components/calcite-carousel/customElement.js";
import type { CarouselItem } from "../components/calcite-carousel-item/customElement.js";
import type { Checkbox } from "../components/calcite-checkbox/customElement.js";
import type { Chip } from "../components/calcite-chip/customElement.js";
import type { ChipGroup } from "../components/calcite-chip-group/customElement.js";
import type { ColorPicker } from "../components/calcite-color-picker/customElement.js";
import type { ColorPickerHexInput } from "../components/calcite-color-picker-hex-input/customElement.js";
import type { ColorPickerSwatch } from "../components/calcite-color-picker-swatch/customElement.js";
import type { Combobox } from "../components/calcite-combobox/customElement.js";
import type { ComboboxItem } from "../components/calcite-combobox-item/customElement.js";
import type { ComboboxItemGroup } from "../components/calcite-combobox-item-group/customElement.js";
import type { DatePicker } from "../components/calcite-date-picker/customElement.js";
import type { DatePickerDay } from "../components/calcite-date-picker-day/customElement.js";
import type { DatePickerMonth } from "../components/calcite-date-picker-month/customElement.js";
import type { Dialog } from "../components/calcite-dialog/customElement.js";
import type { Dropdown } from "../components/calcite-dropdown/customElement.js";
import type { DropdownGroup } from "../components/calcite-dropdown-group/customElement.js";
import type { DropdownItem } from "../components/calcite-dropdown-item/customElement.js";
import type { Fab } from "../components/calcite-fab/customElement.js";
import type { Filter } from "../components/calcite-filter/customElement.js";
import type { Flow } from "../components/calcite-flow/customElement.js";
import type { FlowItem } from "../components/calcite-flow-item/customElement.js";
import type { FocusTrap } from "../components/calcite-focus-trap/customElement.js";
import type { Graph } from "../components/calcite-graph/customElement.js";
import type { Handle } from "../components/calcite-handle/customElement.js";
import type { Icon } from "../components/calcite-icon/customElement.js";
import type { InlineEditable } from "../components/calcite-inline-editable/customElement.js";
import type { Input } from "../components/calcite-input/customElement.js";
import type { InputDatePicker } from "../components/calcite-input-date-picker/customElement.js";
import type { InputMessage } from "../components/calcite-input-message/customElement.js";
import type { InputNumber } from "../components/calcite-input-number/customElement.js";
import type { InputText } from "../components/calcite-input-text/customElement.js";
import type { InputTimePicker } from "../components/calcite-input-time-picker/customElement.js";
import type { InputTimeZone } from "../components/calcite-input-time-zone/customElement.js";
import type { Label } from "../components/calcite-label/customElement.js";
import type { Link } from "../components/calcite-link/customElement.js";
import type { List } from "../components/calcite-list/customElement.js";
import type { ListItem } from "../components/calcite-list-item/customElement.js";
import type { ListItemGroup } from "../components/calcite-list-item-group/customElement.js";
import type { Loader } from "../components/calcite-loader/customElement.js";
import type { Menu } from "../components/calcite-menu/customElement.js";
import type { MenuItem } from "../components/calcite-menu-item/customElement.js";
import type { Meter } from "../components/calcite-meter/customElement.js";
import type { Navigation } from "../components/calcite-navigation/customElement.js";
import type { NavigationLogo } from "../components/calcite-navigation-logo/customElement.js";
import type { NavigationUser } from "../components/calcite-navigation-user/customElement.js";
import type { Notice } from "../components/calcite-notice/customElement.js";
import type { Option } from "../components/calcite-option/customElement.js";
import type { OptionGroup } from "../components/calcite-option-group/customElement.js";
import type { Pagination } from "../components/calcite-pagination/customElement.js";
import type { Panel } from "../components/calcite-panel/customElement.js";
import type { Popover } from "../components/calcite-popover/customElement.js";
import type { Progress } from "../components/calcite-progress/customElement.js";
import type { RadioButton } from "../components/calcite-radio-button/customElement.js";
import type { RadioButtonGroup } from "../components/calcite-radio-button-group/customElement.js";
import type { Rating } from "../components/calcite-rating/customElement.js";
import type { Scrim } from "../components/calcite-scrim/customElement.js";
import type { SegmentedControl } from "../components/calcite-segmented-control/customElement.js";
import type { SegmentedControlItem } from "../components/calcite-segmented-control-item/customElement.js";
import type { Select } from "../components/calcite-select/customElement.js";
import type { Sheet } from "../components/calcite-sheet/customElement.js";
import type { Shell } from "../components/calcite-shell/customElement.js";
import type { ShellPanel } from "../components/calcite-shell-panel/customElement.js";
import type { Slider } from "../components/calcite-slider/customElement.js";
import type { SortHandle } from "../components/calcite-sort-handle/customElement.js";
import type { SortableList } from "../components/calcite-sortable-list/customElement.js";
import type { SplitButton } from "../components/calcite-split-button/customElement.js";
import type { Stack } from "../components/calcite-stack/customElement.js";
import type { Stepper } from "../components/calcite-stepper/customElement.js";
import type { StepperItem } from "../components/calcite-stepper-item/customElement.js";
import type { Swatch } from "../components/calcite-swatch/customElement.js";
import type { SwatchGroup } from "../components/calcite-swatch-group/customElement.js";
import type { Switch } from "../components/calcite-switch/customElement.js";
import type { Tab } from "../components/calcite-tab/customElement.js";
import type { TabNav } from "../components/calcite-tab-nav/customElement.js";
import type { TabTitle } from "../components/calcite-tab-title/customElement.js";
import type { Table } from "../components/calcite-table/customElement.js";
import type { TableCell } from "../components/calcite-table-cell/customElement.js";
import type { TableHeader } from "../components/calcite-table-header/customElement.js";
import type { TableRow } from "../components/calcite-table-row/customElement.js";
import type { Tabs } from "../components/calcite-tabs/customElement.js";
import type { TextArea } from "../components/calcite-text-area/customElement.js";
import type { Tile } from "../components/calcite-tile/customElement.js";
import type { TileGroup } from "../components/calcite-tile-group/customElement.js";
import type { TimePicker } from "../components/calcite-time-picker/customElement.js";
import type { Tooltip } from "../components/calcite-tooltip/customElement.js";
import type { Tree } from "../components/calcite-tree/customElement.js";
import type { TreeItem } from "../components/calcite-tree-item/customElement.js";
import type { h, EventHandler } from "@arcgis/lumina";

interface LuminaCalciteAccordion extends Partial<Pick<Accordion, "appearance" | "iconPosition" | "iconType" | "scale" | "selectionMode">>, h.JSX.HTMLAttributes<Accordion> {
}

interface LuminaCalciteAccordionItem extends Partial<Pick<AccordionItem, "description" | "expanded" | "heading" | "headingLevel" | "iconEnd" | "iconFlipRtl" | "iconStart" | "messageOverrides">>, h.JSX.HTMLAttributes<AccordionItem> {
  oncalciteAccordionItemCollapse?: EventHandler<AccordionItem["calciteAccordionItemCollapse"]>;
  oncalciteAccordionItemExpand?: EventHandler<AccordionItem["calciteAccordionItemExpand"]>;
}

interface LuminaCalciteAction extends Required<Pick<Action, "text">>, Partial<Pick<Action, "active" | "alignment" | "appearance" | "aria" | "compact" | "disabled" | "form" | "icon" | "iconFlipRtl" | "indicator" | "label" | "loading" | "messageOverrides" | "overflowDisabled" | "scale" | "textEnabled" | "type">>, h.JSX.HTMLAttributes<Action> {
}

interface LuminaCalciteActionBar extends Partial<Pick<ActionBar, "actionsEndGroupLabel" | "actionsStartGroupLabel" | "expandDisabled" | "expanded" | "expandPosition" | "floating" | "layout" | "messageOverrides" | "overflowActionsDisabled" | "overlayPositioning" | "position" | "scale" | "selectionAppearance">>, h.JSX.HTMLAttributes<ActionBar> {
  oncalciteActionBarCollapse?: EventHandler<ActionBar["calciteActionBarCollapse"]>;
  oncalciteActionBarExpand?: EventHandler<ActionBar["calciteActionBarExpand"]>;
  oncalciteActionBarToggle?: EventHandler<ActionBar["calciteActionBarToggle"]>;
}

interface LuminaCalciteActionGroup extends Partial<Pick<ActionGroup, "columns" | "expanded" | "label" | "layout" | "menuFlipPlacements" | "menuOpen" | "menuPlacement" | "messageOverrides" | "overflowActionsDisabled" | "overlayPositioning" | "scale" | "selectionMode" | "topLayerDisabled">>, h.JSX.HTMLAttributes<ActionGroup> {
  oncalciteActionGroupChange?: EventHandler<ActionGroup["calciteActionGroupChange"]>;
  oncalciteActionGroupCollapse?: EventHandler<ActionGroup["calciteActionGroupCollapse"]>;
  oncalciteActionGroupExpand?: EventHandler<ActionGroup["calciteActionGroupExpand"]>;
}

interface LuminaCalciteActionMenu extends Required<Pick<ActionMenu, "label">>, Partial<Pick<ActionMenu, "appearance" | "expanded" | "flipPlacements" | "open" | "overlayPositioning" | "placement" | "scale" | "topLayerDisabled">>, h.JSX.HTMLAttributes<ActionMenu> {
  oncalciteActionMenuCollapse?: EventHandler<ActionMenu["calciteActionMenuCollapse"]>;
  oncalciteActionMenuExpand?: EventHandler<ActionMenu["calciteActionMenuExpand"]>;
  oncalciteActionMenuOpen?: EventHandler<ActionMenu["calciteActionMenuOpen"]>;
}

interface LuminaCalciteActionPad extends Partial<Pick<ActionPad, "actionsEndGroupLabel" | "expandDisabled" | "expanded" | "layout" | "messageOverrides" | "overlayPositioning" | "position" | "scale" | "selectionAppearance">>, h.JSX.HTMLAttributes<ActionPad> {
  oncalciteActionPadCollapse?: EventHandler<ActionPad["calciteActionPadCollapse"]>;
  oncalciteActionPadExpand?: EventHandler<ActionPad["calciteActionPadExpand"]>;
  oncalciteActionPadToggle?: EventHandler<ActionPad["calciteActionPadToggle"]>;
}

interface LuminaCalciteAlert extends Required<Pick<Alert, "label">>, Partial<Pick<Alert, "autoClose" | "autoCloseDuration" | "icon" | "iconFlipRtl" | "kind" | "messageOverrides" | "numberingSystem" | "open" | "placement" | "queue" | "scale" | "topLayerDisabled">>, h.JSX.HTMLAttributes<Alert> {
  oncalciteAlertBeforeClose?: EventHandler<Alert["calciteAlertBeforeClose"]>;
  oncalciteAlertBeforeOpen?: EventHandler<Alert["calciteAlertBeforeOpen"]>;
  oncalciteAlertClose?: EventHandler<Alert["calciteAlertClose"]>;
  oncalciteAlertOpen?: EventHandler<Alert["calciteAlertOpen"]>;
}

interface LuminaCalciteAutocomplete extends Partial<Pick<Autocomplete, "alignment" | "autocomplete" | "disabled" | "flipPlacements" | "form" | "icon" | "iconFlipRtl" | "inputValue" | "label" | "labelText" | "loading" | "maxLength" | "messageOverrides" | "minLength" | "name" | "open" | "overlayPositioning" | "pattern" | "placeholder" | "placement" | "prefixText" | "readOnly" | "required" | "scale" | "status" | "suffixText" | "topLayerDisabled" | "validationIcon" | "validationMessage" | "value">>, h.JSX.HTMLAttributes<Autocomplete> {
  oncalciteAutocompleteBeforeClose?: EventHandler<Autocomplete["calciteAutocompleteBeforeClose"]>;
  oncalciteAutocompleteBeforeOpen?: EventHandler<Autocomplete["calciteAutocompleteBeforeOpen"]>;
  oncalciteAutocompleteChange?: EventHandler<Autocomplete["calciteAutocompleteChange"]>;
  oncalciteAutocompleteClose?: EventHandler<Autocomplete["calciteAutocompleteClose"]>;
  oncalciteAutocompleteOpen?: EventHandler<Autocomplete["calciteAutocompleteOpen"]>;
  oncalciteAutocompleteTextChange?: EventHandler<Autocomplete["calciteAutocompleteTextChange"]>;
  oncalciteAutocompleteTextInput?: EventHandler<Autocomplete["calciteAutocompleteTextInput"]>;
}

interface LuminaCalciteAutocompleteItem extends Required<Pick<AutocompleteItem, "heading">>, Partial<Pick<AutocompleteItem, "description" | "disabled" | "iconEnd" | "iconFlipRtl" | "iconStart" | "label" | "selected" | "value">>, h.JSX.HTMLAttributes<AutocompleteItem> {
  oncalciteAutocompleteItemSelect?: EventHandler<AutocompleteItem["calciteAutocompleteItemSelect"]>;
}

interface LuminaCalciteAutocompleteItemGroup extends Required<Pick<AutocompleteItemGroup, "heading">>, Partial<Pick<AutocompleteItemGroup, "label" | "position">>, h.JSX.HTMLAttributes<AutocompleteItemGroup> {
}

interface LuminaCalciteAvatar extends Partial<Pick<Avatar, "fullName" | "label" | "scale" | "thumbnail" | "userId" | "username">>, h.JSX.HTMLAttributes<Avatar> {
}

interface LuminaCalciteBlock extends Partial<Pick<Block, "collapsible" | "description" | "disabled" | "dragDisabled" | "dragHandle" | "expanded" | "heading" | "headingLevel" | "iconEnd" | "iconFlipRtl" | "iconStart" | "label" | "loading" | "menuFlipPlacements" | "menuPlacement" | "messageOverrides" | "open" | "overlayPositioning" | "scale" | "sortHandleOpen" | "status" | "topLayerDisabled">>, h.JSX.HTMLAttributes<Block> {
  oncalciteBlockBeforeClose?: EventHandler<Block["calciteBlockBeforeClose"]>;
  oncalciteBlockBeforeOpen?: EventHandler<Block["calciteBlockBeforeOpen"]>;
  oncalciteBlockClose?: EventHandler<Block["calciteBlockClose"]>;
  oncalciteBlockCollapse?: EventHandler<Block["calciteBlockCollapse"]>;
  oncalciteBlockExpand?: EventHandler<Block["calciteBlockExpand"]>;
  oncalciteBlockOpen?: EventHandler<Block["calciteBlockOpen"]>;
  oncalciteBlockSortHandleBeforeClose?: EventHandler<Block["calciteBlockSortHandleBeforeClose"]>;
  oncalciteBlockSortHandleBeforeOpen?: EventHandler<Block["calciteBlockSortHandleBeforeOpen"]>;
  oncalciteBlockSortHandleClose?: EventHandler<Block["calciteBlockSortHandleClose"]>;
  oncalciteBlockSortHandleOpen?: EventHandler<Block["calciteBlockSortHandleOpen"]>;
  oncalciteBlockToggle?: EventHandler<Block["calciteBlockToggle"]>;
}

interface LuminaCalciteBlockGroup extends Required<Pick<BlockGroup, "label">>, Partial<Pick<BlockGroup, "canPull" | "canPut" | "disabled" | "dragEnabled" | "group" | "loading" | "scale" | "sortDisabled">>, h.JSX.HTMLAttributes<BlockGroup> {
  oncalciteBlockGroupDragEnd?: EventHandler<BlockGroup["calciteBlockGroupDragEnd"]>;
  oncalciteBlockGroupDragStart?: EventHandler<BlockGroup["calciteBlockGroupDragStart"]>;
  oncalciteBlockGroupMoveHalt?: EventHandler<BlockGroup["calciteBlockGroupMoveHalt"]>;
  oncalciteBlockGroupOrderChange?: EventHandler<BlockGroup["calciteBlockGroupOrderChange"]>;
}

interface LuminaCalciteBlockSection extends Partial<Pick<BlockSection, "expanded" | "iconEnd" | "iconFlipRtl" | "iconStart" | "messageOverrides" | "open" | "scale" | "status" | "text" | "toggleDisplay">>, h.JSX.HTMLAttributes<BlockSection> {
  oncalciteBlockSectionCollapse?: EventHandler<BlockSection["calciteBlockSectionCollapse"]>;
  oncalciteBlockSectionExpand?: EventHandler<BlockSection["calciteBlockSectionExpand"]>;
  oncalciteBlockSectionToggle?: EventHandler<BlockSection["calciteBlockSectionToggle"]>;
}

interface LuminaCalciteButton extends Partial<Pick<Button, "alignment" | "appearance" | "disabled" | "download" | "form" | "href" | "iconEnd" | "iconFlipRtl" | "iconStart" | "kind" | "label" | "loading" | "messageOverrides" | "name" | "rel" | "round" | "scale" | "splitChild" | "target" | "type" | "width">>, h.JSX.HTMLAttributes<Button> {
}

interface LuminaCalciteCard extends Partial<Pick<Card, "disabled" | "label" | "loading" | "messageOverrides" | "scale" | "selectable" | "selected" | "thumbnailPosition">>, h.JSX.HTMLAttributes<Card> {
  oncalciteCardSelect?: EventHandler<Card["calciteCardSelect"]>;
}

interface LuminaCalciteCardGroup extends Required<Pick<CardGroup, "label">>, Partial<Pick<CardGroup, "disabled" | "scale" | "selectionMode">>, h.JSX.HTMLAttributes<CardGroup> {
  oncalciteCardGroupSelect?: EventHandler<CardGroup["calciteCardGroupSelect"]>;
}

interface LuminaCalciteCarousel extends Required<Pick<Carousel, "label">>, Partial<Pick<Carousel, "arrowType" | "autoplay" | "autoplayDuration" | "controlOverlay" | "disabled" | "messageOverrides" | "paginationDisabled" | "paginationPosition">>, h.JSX.HTMLAttributes<Carousel> {
  oncalciteCarouselChange?: EventHandler<Carousel["calciteCarouselChange"]>;
  oncalciteCarouselPause?: EventHandler<Carousel["calciteCarouselPause"]>;
  oncalciteCarouselPlay?: EventHandler<Carousel["calciteCarouselPlay"]>;
  oncalciteCarouselResume?: EventHandler<Carousel["calciteCarouselResume"]>;
  oncalciteCarouselStop?: EventHandler<Carousel["calciteCarouselStop"]>;
}

interface LuminaCalciteCarouselItem extends Required<Pick<CarouselItem, "label">>, Partial<Pick<CarouselItem, "selected">>, h.JSX.HTMLAttributes<CarouselItem> {
}

interface LuminaCalciteCheckbox extends Partial<Pick<Checkbox, "checked" | "disabled" | "form" | "indeterminate" | "label" | "labelText" | "messageOverrides" | "name" | "required" | "scale" | "status" | "value">>, h.JSX.HTMLAttributes<Checkbox> {
  oncalciteCheckboxChange?: EventHandler<Checkbox["calciteCheckboxChange"]>;
}

interface LuminaCalciteChip extends Required<Pick<Chip, "label">>, Partial<Pick<Chip, "appearance" | "closable" | "closed" | "closeOnDelete" | "disabled" | "icon" | "iconFlipRtl" | "kind" | "messageOverrides" | "scale" | "selected" | "value">>, h.JSX.HTMLAttributes<Chip> {
  oncalciteChipClose?: EventHandler<Chip["calciteChipClose"]>;
  oncalciteChipSelect?: EventHandler<Chip["calciteChipSelect"]>;
}

interface LuminaCalciteChipGroup extends Required<Pick<ChipGroup, "label">>, Partial<Pick<ChipGroup, "disabled" | "scale" | "selectionMode">>, h.JSX.HTMLAttributes<ChipGroup> {
  oncalciteChipGroupSelect?: EventHandler<ChipGroup["calciteChipGroupSelect"]>;
}

interface LuminaCalciteColorPicker extends Partial<Pick<ColorPicker, "alphaChannel" | "channelsDisabled" | "clearable" | "disabled" | "fieldDisabled" | "format" | "hexDisabled" | "messageOverrides" | "numberingSystem" | "savedDisabled" | "scale" | "storageId" | "value">>, h.JSX.HTMLAttributes<ColorPicker> {
  oncalciteColorPickerChange?: EventHandler<ColorPicker["calciteColorPickerChange"]>;
  oncalciteColorPickerInput?: EventHandler<ColorPicker["calciteColorPickerInput"]>;
}

interface LuminaCalciteColorPickerHexInput extends Partial<Pick<ColorPickerHexInput, "allowEmpty" | "alphaChannel" | "hexLabel" | "numberingSystem" | "scale" | "value">>, h.JSX.HTMLAttributes<ColorPickerHexInput> {
  oncalciteColorPickerHexInputChange?: EventHandler<ColorPickerHexInput["calciteColorPickerHexInputChange"]>;
}

interface LuminaCalciteColorPickerSwatch extends Partial<Pick<ColorPickerSwatch, "active" | "color" | "scale">>, h.JSX.HTMLAttributes<ColorPickerSwatch> {
}

interface LuminaCalciteCombobox extends Required<Pick<Combobox, "label">>, Partial<Pick<Combobox, "allowCustomValues" | "clearDisabled" | "disabled" | "filterProps" | "filterText" | "flipPlacements" | "form" | "labelText" | "maxItems" | "messageOverrides" | "name" | "open" | "overlayPositioning" | "placeholder" | "placeholderIcon" | "placeholderIconFlipRtl" | "placement" | "readOnly" | "required" | "scale" | "selectAllEnabled" | "selectionAppearance" | "selectionDisplay" | "selectionMode" | "status" | "topLayerDisabled" | "validationIcon" | "validationMessage" | "value">>, h.JSX.HTMLAttributes<Combobox> {
  oncalciteComboboxBeforeClose?: EventHandler<Combobox["calciteComboboxBeforeClose"]>;
  oncalciteComboboxBeforeOpen?: EventHandler<Combobox["calciteComboboxBeforeOpen"]>;
  oncalciteComboboxChange?: EventHandler<Combobox["calciteComboboxChange"]>;
  oncalciteComboboxChipClose?: EventHandler<Combobox["calciteComboboxChipClose"]>;
  oncalciteComboboxClose?: EventHandler<Combobox["calciteComboboxClose"]>;
  oncalciteComboboxFilterChange?: EventHandler<Combobox["calciteComboboxFilterChange"]>;
  oncalciteComboboxOpen?: EventHandler<Combobox["calciteComboboxOpen"]>;
}

interface LuminaCalciteComboboxItem extends Required<Pick<ComboboxItem, "heading">>, Partial<Pick<ComboboxItem, "active" | "ancestors" | "description" | "disabled" | "filterDisabled" | "guid" | "icon" | "iconFlipRtl" | "label" | "metadata" | "selected" | "shortHeading" | "value">>, h.JSX.HTMLAttributes<ComboboxItem> {
  oncalciteComboboxItemChange?: EventHandler<ComboboxItem["calciteComboboxItemChange"]>;
}

interface LuminaCalciteComboboxItemGroup extends Required<Pick<ComboboxItemGroup, "label">>, Partial<Pick<ComboboxItemGroup, "ancestors" | "position">>, h.JSX.HTMLAttributes<ComboboxItemGroup> {
}

interface LuminaCalciteDatePicker extends Partial<Pick<DatePicker, "activeDate" | "activeRange" | "calendars" | "headingLevel" | "layout" | "max" | "maxAsDate" | "messageOverrides" | "min" | "minAsDate" | "monthStyle" | "numberingSystem" | "proximitySelectionDisabled" | "range" | "scale" | "value" | "valueAsDate">>, h.JSX.HTMLAttributes<DatePicker> {
  oncalciteDatePickerChange?: EventHandler<DatePicker["calciteDatePickerChange"]>;
  oncalciteDatePickerRangeChange?: EventHandler<DatePicker["calciteDatePickerRangeChange"]>;
}

interface LuminaCalciteDatePickerDay extends Required<Pick<DatePickerDay, "day">>, Partial<Pick<DatePickerDay, "active" | "currentMonth" | "disabled" | "endOfRange" | "highlighted" | "range" | "rangeHover" | "scale" | "selected" | "startOfRange" | "value">>, h.JSX.HTMLAttributes<DatePickerDay> {
}

interface LuminaCalciteDatePickerMonth extends Partial<Pick<DatePickerMonth, "activeDate" | "calendars" | "endDate" | "headingLevel" | "hoverRange" | "max" | "min" | "monthStyle" | "range" | "scale" | "selectedDate" | "startDate">>, h.JSX.HTMLAttributes<DatePickerMonth> {
}

interface LuminaCalciteDialog extends Partial<Pick<Dialog, "beforeClose" | "closeDisabled" | "description" | "dragEnabled" | "escapeDisabled" | "focusTrapDisabled" | "focusTrapOptions" | "fullscreenDisabled" | "heading" | "headingLevel" | "icon" | "iconFlipRtl" | "kind" | "loading" | "menuOpen" | "messageOverrides" | "modal" | "open" | "outsideCloseDisabled" | "overlayPositioning" | "placement" | "resizable" | "scale" | "topLayerDisabled" | "width" | "widthScale">>, h.JSX.HTMLAttributes<Dialog> {
  oncalciteDialogBeforeClose?: EventHandler<Dialog["calciteDialogBeforeClose"]>;
  oncalciteDialogBeforeOpen?: EventHandler<Dialog["calciteDialogBeforeOpen"]>;
  oncalciteDialogClose?: EventHandler<Dialog["calciteDialogClose"]>;
  oncalciteDialogOpen?: EventHandler<Dialog["calciteDialogOpen"]>;
  oncalciteDialogScroll?: EventHandler<Dialog["calciteDialogScroll"]>;
}

interface LuminaCalciteDropdown extends Partial<Pick<Dropdown, "closeOnSelectDisabled" | "disabled" | "flipPlacements" | "maxItems" | "offsetDistance" | "offsetSkidding" | "open" | "overlayPositioning" | "placement" | "referenceElement" | "scale" | "topLayerDisabled" | "type" | "width" | "widthScale">>, h.JSX.HTMLAttributes<Dropdown> {
  oncalciteDropdownBeforeClose?: EventHandler<Dropdown["calciteDropdownBeforeClose"]>;
  oncalciteDropdownBeforeOpen?: EventHandler<Dropdown["calciteDropdownBeforeOpen"]>;
  oncalciteDropdownClose?: EventHandler<Dropdown["calciteDropdownClose"]>;
  oncalciteDropdownOpen?: EventHandler<Dropdown["calciteDropdownOpen"]>;
  oncalciteDropdownSelect?: EventHandler<Dropdown["calciteDropdownSelect"]>;
}

interface LuminaCalciteDropdownGroup extends Partial<Pick<DropdownGroup, "groupTitle" | "position" | "selectionMode">>, h.JSX.HTMLAttributes<DropdownGroup> {
}

interface LuminaCalciteDropdownItem extends Partial<Pick<DropdownItem, "disabled" | "href" | "iconEnd" | "iconFlipRtl" | "iconStart" | "label" | "rel" | "selected" | "target">>, h.JSX.HTMLAttributes<DropdownItem> {
  oncalciteDropdownItemSelect?: EventHandler<DropdownItem["calciteDropdownItemSelect"]>;
}

interface LuminaCalciteFab extends Partial<Pick<Fab, "appearance" | "disabled" | "icon" | "iconFlipRtl" | "kind" | "label" | "loading" | "scale" | "text" | "textEnabled">>, h.JSX.HTMLAttributes<Fab> {
}

interface LuminaCalciteFilter extends Partial<Pick<Filter, "disabled" | "filterProps" | "items" | "label" | "messageOverrides" | "placeholder" | "scale" | "value">>, h.JSX.HTMLAttributes<Filter> {
  oncalciteFilterChange?: EventHandler<Filter["calciteFilterChange"]>;
}

interface LuminaCalciteFlow extends h.JSX.HTMLAttributes<Flow> {
}

interface LuminaCalciteFlowItem extends Partial<Pick<FlowItem, "beforeBack" | "beforeClose" | "closable" | "closed" | "collapsed" | "collapseDirection" | "collapsible" | "description" | "disabled" | "heading" | "headingLevel" | "icon" | "iconFlipRtl" | "loading" | "menuOpen" | "messageOverrides" | "overlayPositioning" | "scale" | "selected" | "showBackButton" | "topLayerDisabled">>, h.JSX.HTMLAttributes<FlowItem> {
  oncalciteFlowItemBack?: EventHandler<FlowItem["calciteFlowItemBack"]>;
  oncalciteFlowItemClose?: EventHandler<FlowItem["calciteFlowItemClose"]>;
  oncalciteFlowItemCollapse?: EventHandler<FlowItem["calciteFlowItemCollapse"]>;
  oncalciteFlowItemExpand?: EventHandler<FlowItem["calciteFlowItemExpand"]>;
  oncalciteFlowItemScroll?: EventHandler<FlowItem["calciteFlowItemScroll"]>;
  oncalciteFlowItemToggle?: EventHandler<FlowItem["calciteFlowItemToggle"]>;
}

interface LuminaCalciteFocusTrap extends Partial<Pick<FocusTrap, "focusTrapDisabled" | "focusTrapDisabledOverride" | "focusTrapOptions">>, h.JSX.HTMLAttributes<FocusTrap> {
  oncalciteFocusTrapActiveChange?: EventHandler<FocusTrap["calciteFocusTrapActiveChange"]>;
}

interface LuminaCalciteGraph extends Required<Pick<Graph, "max" | "min">>, Partial<Pick<Graph, "colorStops" | "data" | "highlightMax" | "highlightMin">>, h.JSX.HTMLAttributes<Graph> {
}

interface LuminaCalciteHandle extends Partial<Pick<Handle, "disabled" | "dragHandle" | "messageOverrides" | "selected">>, h.JSX.HTMLAttributes<Handle> {
  oncalciteHandleChange?: EventHandler<Handle["calciteHandleChange"]>;
  oncalciteHandleNudge?: EventHandler<Handle["calciteHandleNudge"]>;
}

interface LuminaCalciteIcon extends Partial<Pick<Icon, "flipRtl" | "icon" | "preload" | "scale" | "textLabel">>, h.JSX.HTMLAttributes<Icon> {
}

interface LuminaCalciteInlineEditable extends Partial<Pick<InlineEditable, "afterConfirm" | "controls" | "disabled" | "editingEnabled" | "loading" | "messageOverrides" | "scale">>, h.JSX.HTMLAttributes<InlineEditable> {
  oncalciteInlineEditableEditCancel?: EventHandler<InlineEditable["calciteInlineEditableEditCancel"]>;
  oncalciteInlineEditableEditConfirm?: EventHandler<InlineEditable["calciteInlineEditableEditConfirm"]>;
}

interface LuminaCalciteInput extends Partial<Pick<Input, "accept" | "alignment" | "autocomplete" | "clearable" | "disabled" | "files" | "form" | "groupSeparator" | "icon" | "iconFlipRtl" | "label" | "labelText" | "loading" | "max" | "maxLength" | "messageOverrides" | "min" | "minLength" | "multiple" | "name" | "numberButtonType" | "numberingSystem" | "pattern" | "placeholder" | "prefixText" | "readOnly" | "required" | "scale" | "status" | "step" | "suffixText" | "type" | "validationIcon" | "validationMessage" | "value">>, h.JSX.HTMLAttributes<Input> {
  oncalciteInputChange?: EventHandler<Input["calciteInputChange"]>;
  oncalciteInputInput?: EventHandler<Input["calciteInputInput"]>;
}

interface LuminaCalciteInputDatePicker extends Partial<Pick<InputDatePicker, "calendars" | "disabled" | "flipPlacements" | "focusTrapDisabled" | "form" | "headingLevel" | "label" | "labelText" | "layout" | "max" | "maxAsDate" | "messageOverrides" | "min" | "minAsDate" | "monthStyle" | "name" | "numberingSystem" | "open" | "overlayPositioning" | "placement" | "proximitySelectionDisabled" | "range" | "readOnly" | "required" | "scale" | "status" | "topLayerDisabled" | "validationIcon" | "validationMessage" | "value" | "valueAsDate">>, h.JSX.HTMLAttributes<InputDatePicker> {
  oncalciteInputDatePickerBeforeClose?: EventHandler<InputDatePicker["calciteInputDatePickerBeforeClose"]>;
  oncalciteInputDatePickerBeforeOpen?: EventHandler<InputDatePicker["calciteInputDatePickerBeforeOpen"]>;
  oncalciteInputDatePickerChange?: EventHandler<InputDatePicker["calciteInputDatePickerChange"]>;
  oncalciteInputDatePickerClose?: EventHandler<InputDatePicker["calciteInputDatePickerClose"]>;
  oncalciteInputDatePickerOpen?: EventHandler<InputDatePicker["calciteInputDatePickerOpen"]>;
}

interface LuminaCalciteInputMessage extends Partial<Pick<InputMessage, "icon" | "iconFlipRtl" | "scale" | "status">>, h.JSX.HTMLAttributes<InputMessage> {
}

interface LuminaCalciteInputNumber extends Partial<Pick<InputNumber, "alignment" | "autocomplete" | "clearable" | "disabled" | "form" | "groupSeparator" | "icon" | "iconFlipRtl" | "integer" | "label" | "labelText" | "loading" | "max" | "maxLength" | "messageOverrides" | "min" | "minLength" | "name" | "numberButtonType" | "numberingSystem" | "placeholder" | "prefixText" | "readOnly" | "required" | "scale" | "status" | "step" | "suffixText" | "validationIcon" | "validationMessage" | "value">>, h.JSX.HTMLAttributes<InputNumber> {
  oncalciteInputNumberChange?: EventHandler<InputNumber["calciteInputNumberChange"]>;
  oncalciteInputNumberInput?: EventHandler<InputNumber["calciteInputNumberInput"]>;
}

interface LuminaCalciteInputText extends Partial<Pick<InputText, "alignment" | "autocomplete" | "clearable" | "disabled" | "form" | "icon" | "iconFlipRtl" | "label" | "labelText" | "loading" | "maxLength" | "messageOverrides" | "minLength" | "name" | "pattern" | "placeholder" | "prefixText" | "readOnly" | "required" | "scale" | "status" | "suffixText" | "validationIcon" | "validationMessage" | "value">>, h.JSX.HTMLAttributes<InputText> {
  oncalciteInputTextChange?: EventHandler<InputText["calciteInputTextChange"]>;
  oncalciteInputTextInput?: EventHandler<InputText["calciteInputTextInput"]>;
}

interface LuminaCalciteInputTimePicker extends Partial<Pick<InputTimePicker, "disabled" | "focusTrapDisabled" | "form" | "hourFormat" | "label" | "labelText" | "max" | "messageOverrides" | "min" | "name" | "numberingSystem" | "open" | "overlayPositioning" | "placement" | "readOnly" | "required" | "scale" | "status" | "step" | "validationIcon" | "validationMessage" | "value">>, h.JSX.HTMLAttributes<InputTimePicker> {
  oncalciteInputTimePickerBeforeClose?: EventHandler<InputTimePicker["calciteInputTimePickerBeforeClose"]>;
  oncalciteInputTimePickerBeforeOpen?: EventHandler<InputTimePicker["calciteInputTimePickerBeforeOpen"]>;
  oncalciteInputTimePickerChange?: EventHandler<InputTimePicker["calciteInputTimePickerChange"]>;
  oncalciteInputTimePickerClose?: EventHandler<InputTimePicker["calciteInputTimePickerClose"]>;
  oncalciteInputTimePickerOpen?: EventHandler<InputTimePicker["calciteInputTimePickerOpen"]>;
}

interface LuminaCalciteInputTimeZone extends Partial<Pick<InputTimeZone, "clearable" | "disabled" | "form" | "labelText" | "maxItems" | "messageOverrides" | "mode" | "name" | "offsetStyle" | "open" | "overlayPositioning" | "readOnly" | "referenceDate" | "scale" | "status" | "topLayerDisabled" | "validationIcon" | "validationMessage" | "value">>, h.JSX.HTMLAttributes<InputTimeZone> {
  oncalciteInputTimeZoneBeforeClose?: EventHandler<InputTimeZone["calciteInputTimeZoneBeforeClose"]>;
  oncalciteInputTimeZoneBeforeOpen?: EventHandler<InputTimeZone["calciteInputTimeZoneBeforeOpen"]>;
  oncalciteInputTimeZoneChange?: EventHandler<InputTimeZone["calciteInputTimeZoneChange"]>;
  oncalciteInputTimeZoneClose?: EventHandler<InputTimeZone["calciteInputTimeZoneClose"]>;
  oncalciteInputTimeZoneOpen?: EventHandler<InputTimeZone["calciteInputTimeZoneOpen"]>;
}

interface LuminaCalciteLabel extends Partial<Pick<Label, "alignment" | "for" | "layout" | "scale">>, h.JSX.HTMLAttributes<Label> {
}

interface LuminaCalciteLink extends Partial<Pick<Link, "disabled" | "download" | "href" | "iconEnd" | "iconFlipRtl" | "iconStart" | "rel" | "target">>, h.JSX.HTMLAttributes<Link> {
}

interface LuminaCalciteList extends Required<Pick<List, "label">>, Partial<Pick<List, "canPull" | "canPut" | "disabled" | "displayMode" | "dragEnabled" | "filterEnabled" | "filterLabel" | "filterPlaceholder" | "filterPredicate" | "filterProps" | "filterText" | "group" | "interactionMode" | "loading" | "messageOverrides" | "numberingSystem" | "scale" | "selectionAppearance" | "selectionMode" | "sortDisabled">>, h.JSX.HTMLAttributes<List> {
  oncalciteListChange?: EventHandler<List["calciteListChange"]>;
  oncalciteListDragEnd?: EventHandler<List["calciteListDragEnd"]>;
  oncalciteListDragStart?: EventHandler<List["calciteListDragStart"]>;
  oncalciteListFilter?: EventHandler<List["calciteListFilter"]>;
  oncalciteListMoveHalt?: EventHandler<List["calciteListMoveHalt"]>;
  oncalciteListOrderChange?: EventHandler<List["calciteListOrderChange"]>;
}

interface LuminaCalciteListItem extends Partial<Pick<ListItem, "closable" | "closed" | "description" | "disabled" | "dragDisabled" | "expanded" | "iconEnd" | "iconFlipRtl" | "iconStart" | "label" | "messageOverrides" | "metadata" | "open" | "scale" | "selected" | "sortHandleOpen" | "topLayerDisabled" | "unavailable" | "value">>, h.JSX.HTMLAttributes<ListItem> {
  oncalciteListItemClose?: EventHandler<ListItem["calciteListItemClose"]>;
  oncalciteListItemCollapse?: EventHandler<ListItem["calciteListItemCollapse"]>;
  oncalciteListItemExpand?: EventHandler<ListItem["calciteListItemExpand"]>;
  oncalciteListItemSelect?: EventHandler<ListItem["calciteListItemSelect"]>;
  oncalciteListItemSortHandleBeforeClose?: EventHandler<ListItem["calciteListItemSortHandleBeforeClose"]>;
  oncalciteListItemSortHandleBeforeOpen?: EventHandler<ListItem["calciteListItemSortHandleBeforeOpen"]>;
  oncalciteListItemSortHandleClose?: EventHandler<ListItem["calciteListItemSortHandleClose"]>;
  oncalciteListItemSortHandleOpen?: EventHandler<ListItem["calciteListItemSortHandleOpen"]>;
  oncalciteListItemToggle?: EventHandler<ListItem["calciteListItemToggle"]>;
}

interface LuminaCalciteListItemGroup extends Partial<Pick<ListItemGroup, "disabled" | "heading" | "scale">>, h.JSX.HTMLAttributes<ListItemGroup> {
}

interface LuminaCalciteLoader extends Required<Pick<Loader, "label">>, Partial<Pick<Loader, "inline" | "scale" | "text" | "type" | "value">>, h.JSX.HTMLAttributes<Loader> {
}

interface LuminaCalciteMenu extends Required<Pick<Menu, "label">>, Partial<Pick<Menu, "layout" | "messageOverrides">>, h.JSX.HTMLAttributes<Menu> {
}

interface LuminaCalciteMenuItem extends Required<Pick<MenuItem, "label">>, Partial<Pick<MenuItem, "active" | "breadcrumb" | "href" | "iconEnd" | "iconFlipRtl" | "iconStart" | "messageOverrides" | "open" | "rel" | "target" | "text">>, h.JSX.HTMLAttributes<MenuItem> {
  oncalciteMenuItemSelect?: EventHandler<MenuItem["calciteMenuItemSelect"]>;
}

interface LuminaCalciteMeter extends Required<Pick<Meter, "label">>, Partial<Pick<Meter, "appearance" | "disabled" | "fillType" | "form" | "groupSeparator" | "high" | "low" | "max" | "min" | "name" | "numberingSystem" | "rangeLabels" | "rangeLabelType" | "scale" | "unitLabel" | "value" | "valueLabel" | "valueLabelType">>, h.JSX.HTMLAttributes<Meter> {
}

interface LuminaCalciteNavigation extends Partial<Pick<Navigation, "label" | "navigationAction" | "scale">>, h.JSX.HTMLAttributes<Navigation> {
  oncalciteNavigationActionSelect?: EventHandler<Navigation["calciteNavigationActionSelect"]>;
}

interface LuminaCalciteNavigationLogo extends Partial<Pick<NavigationLogo, "active" | "description" | "heading" | "headingLevel" | "href" | "icon" | "iconFlipRtl" | "label" | "rel" | "target" | "thumbnail">>, h.JSX.HTMLAttributes<NavigationLogo> {
}

interface LuminaCalciteNavigationUser extends Partial<Pick<NavigationUser, "active" | "fullName" | "label" | "textDisabled" | "thumbnail" | "userId" | "username">>, h.JSX.HTMLAttributes<NavigationUser> {
}

interface LuminaCalciteNotice extends Partial<Pick<Notice, "appearance" | "closable" | "icon" | "iconFlipRtl" | "kind" | "messageOverrides" | "open" | "scale" | "width">>, h.JSX.HTMLAttributes<Notice> {
  oncalciteNoticeBeforeClose?: EventHandler<Notice["calciteNoticeBeforeClose"]>;
  oncalciteNoticeBeforeOpen?: EventHandler<Notice["calciteNoticeBeforeOpen"]>;
  oncalciteNoticeClose?: EventHandler<Notice["calciteNoticeClose"]>;
  oncalciteNoticeOpen?: EventHandler<Notice["calciteNoticeOpen"]>;
}

interface LuminaCalciteOption extends Partial<Pick<Option, "disabled" | "label" | "selected" | "value">>, h.JSX.HTMLAttributes<Option> {
}

interface LuminaCalciteOptionGroup extends Required<Pick<OptionGroup, "label">>, Partial<Pick<OptionGroup, "disabled">>, h.JSX.HTMLAttributes<OptionGroup> {
}

interface LuminaCalcitePagination extends Partial<Pick<Pagination, "groupSeparator" | "messageOverrides" | "numberingSystem" | "pageSize" | "scale" | "startItem" | "totalItems">>, h.JSX.HTMLAttributes<Pagination> {
  oncalcitePaginationChange?: EventHandler<Pagination["calcitePaginationChange"]>;
}

interface LuminaCalcitePanel extends Partial<Pick<Panel, "beforeClose" | "closable" | "closed" | "collapsed" | "collapseDirection" | "collapsible" | "description" | "disabled" | "heading" | "headingLevel" | "icon" | "iconFlipRtl" | "loading" | "menuFlipPlacements" | "menuOpen" | "menuPlacement" | "messageOverrides" | "overlayPositioning" | "scale" | "topLayerDisabled">>, h.JSX.HTMLAttributes<Panel> {
  oncalcitePanelClose?: EventHandler<Panel["calcitePanelClose"]>;
  oncalcitePanelCollapse?: EventHandler<Panel["calcitePanelCollapse"]>;
  oncalcitePanelExpand?: EventHandler<Panel["calcitePanelExpand"]>;
  oncalcitePanelScroll?: EventHandler<Panel["calcitePanelScroll"]>;
  oncalcitePanelToggle?: EventHandler<Panel["calcitePanelToggle"]>;
}

interface LuminaCalcitePopover extends Required<Pick<Popover, "label" | "referenceElement">>, Partial<Pick<Popover, "autoClose" | "closable" | "flipDisabled" | "flipPlacements" | "focusTrapDisabled" | "focusTrapOptions" | "heading" | "headingLevel" | "messageOverrides" | "offsetDistance" | "offsetSkidding" | "open" | "overlayPositioning" | "placement" | "pointerDisabled" | "scale" | "topLayerDisabled" | "triggerDisabled">>, h.JSX.HTMLAttributes<Popover> {
  oncalcitePopoverBeforeClose?: EventHandler<Popover["calcitePopoverBeforeClose"]>;
  oncalcitePopoverBeforeOpen?: EventHandler<Popover["calcitePopoverBeforeOpen"]>;
  oncalcitePopoverClose?: EventHandler<Popover["calcitePopoverClose"]>;
  oncalcitePopoverOpen?: EventHandler<Popover["calcitePopoverOpen"]>;
}

interface LuminaCalciteProgress extends Partial<Pick<Progress, "label" | "reversed" | "text" | "type" | "value">>, h.JSX.HTMLAttributes<Progress> {
}

interface LuminaCalciteRadioButton extends Required<Pick<RadioButton, "value">>, Partial<Pick<RadioButton, "checked" | "disabled" | "form" | "labelText" | "name" | "required" | "scale" | "status" | "validationMessage">>, h.JSX.HTMLAttributes<RadioButton> {
  oncalciteRadioButtonChange?: EventHandler<RadioButton["calciteRadioButtonChange"]>;
}

interface LuminaCalciteRadioButtonGroup extends Required<Pick<RadioButtonGroup, "name">>, Partial<Pick<RadioButtonGroup, "disabled" | "labelText" | "layout" | "messageOverrides" | "required" | "scale" | "status" | "validationIcon" | "validationMessage">>, h.JSX.HTMLAttributes<RadioButtonGroup> {
  oncalciteRadioButtonGroupChange?: EventHandler<RadioButtonGroup["calciteRadioButtonGroupChange"]>;
}

interface LuminaCalciteRating extends Partial<Pick<Rating, "average" | "count" | "disabled" | "form" | "labelText" | "messageOverrides" | "name" | "readOnly" | "scale" | "showChip" | "status" | "validationIcon" | "validationMessage" | "value">>, h.JSX.HTMLAttributes<Rating> {
  oncalciteRatingChange?: EventHandler<Rating["calciteRatingChange"]>;
}

interface LuminaCalciteScrim extends Partial<Pick<Scrim, "loading" | "messageOverrides">>, h.JSX.HTMLAttributes<Scrim> {
}

interface LuminaCalciteSegmentedControl extends Partial<Pick<SegmentedControl, "appearance" | "disabled" | "form" | "labelText" | "layout" | "messageOverrides" | "name" | "required" | "scale" | "status" | "validationIcon" | "validationMessage" | "value" | "width">>, h.JSX.HTMLAttributes<SegmentedControl> {
  oncalciteSegmentedControlChange?: EventHandler<SegmentedControl["calciteSegmentedControlChange"]>;
}

interface LuminaCalciteSegmentedControlItem extends Partial<Pick<SegmentedControlItem, "checked" | "iconEnd" | "iconFlipRtl" | "iconStart" | "value">>, h.JSX.HTMLAttributes<SegmentedControlItem> {
}

interface LuminaCalciteSelect extends Required<Pick<Select, "label">>, Partial<Pick<Select, "disabled" | "form" | "labelText" | "messageOverrides" | "name" | "required" | "scale" | "status" | "validationIcon" | "validationMessage" | "value" | "width">>, h.JSX.HTMLAttributes<Select> {
  oncalciteSelectChange?: EventHandler<Select["calciteSelectChange"]>;
}

interface LuminaCalciteSheet extends Required<Pick<Sheet, "label">>, Partial<Pick<Sheet, "beforeClose" | "displayMode" | "escapeDisabled" | "focusTrapDisabled" | "focusTrapOptions" | "height" | "heightScale" | "messageOverrides" | "open" | "outsideCloseDisabled" | "position" | "resizable" | "topLayerDisabled" | "width" | "widthScale">>, h.JSX.HTMLAttributes<Sheet> {
  oncalciteSheetBeforeClose?: EventHandler<Sheet["calciteSheetBeforeClose"]>;
  oncalciteSheetBeforeOpen?: EventHandler<Sheet["calciteSheetBeforeOpen"]>;
  oncalciteSheetClose?: EventHandler<Sheet["calciteSheetClose"]>;
  oncalciteSheetOpen?: EventHandler<Sheet["calciteSheetOpen"]>;
}

interface LuminaCalciteShell extends Partial<Pick<Shell, "contentBehind">>, h.JSX.HTMLAttributes<Shell> {
}

interface LuminaCalciteShellPanel extends Partial<Pick<ShellPanel, "collapsed" | "displayMode" | "height" | "heightScale" | "layout" | "messageOverrides" | "position" | "resizable" | "width" | "widthScale">>, h.JSX.HTMLAttributes<ShellPanel> {
  oncalciteShellPanelCollapse?: EventHandler<ShellPanel["calciteShellPanelCollapse"]>;
  oncalciteShellPanelExpand?: EventHandler<ShellPanel["calciteShellPanelExpand"]>;
}

interface LuminaCalciteSlider extends Partial<Pick<Slider, "disabled" | "fillPlacement" | "form" | "groupSeparator" | "hasHistogram" | "histogram" | "histogramStops" | "labelFormatter" | "labelHandles" | "labelText" | "labelTicks" | "max" | "maxLabel" | "maxValue" | "messageOverrides" | "min" | "minLabel" | "minValue" | "mirrored" | "name" | "numberingSystem" | "pageStep" | "precise" | "required" | "scale" | "snap" | "status" | "step" | "ticks" | "validationIcon" | "validationMessage" | "value">>, h.JSX.HTMLAttributes<Slider> {
  oncalciteSliderChange?: EventHandler<Slider["calciteSliderChange"]>;
  oncalciteSliderInput?: EventHandler<Slider["calciteSliderInput"]>;
}

interface LuminaCalciteSortHandle extends Partial<Pick<SortHandle, "addToItems" | "disabled" | "flipPlacements" | "label" | "messageOverrides" | "moveToItems" | "open" | "overlayPositioning" | "placement" | "scale" | "setPosition" | "setSize" | "sortDisabled" | "topLayerDisabled" | "widthScale">>, h.JSX.HTMLAttributes<SortHandle> {
  oncalciteSortHandleAdd?: EventHandler<SortHandle["calciteSortHandleAdd"]>;
  oncalciteSortHandleBeforeClose?: EventHandler<SortHandle["calciteSortHandleBeforeClose"]>;
  oncalciteSortHandleBeforeOpen?: EventHandler<SortHandle["calciteSortHandleBeforeOpen"]>;
  oncalciteSortHandleClose?: EventHandler<SortHandle["calciteSortHandleClose"]>;
  oncalciteSortHandleMove?: EventHandler<SortHandle["calciteSortHandleMove"]>;
  oncalciteSortHandleOpen?: EventHandler<SortHandle["calciteSortHandleOpen"]>;
  oncalciteSortHandleReorder?: EventHandler<SortHandle["calciteSortHandleReorder"]>;
}

interface LuminaCalciteSortableList extends Partial<Pick<SortableList, "canPull" | "canPut" | "disabled" | "dragSelector" | "group" | "handleSelector" | "layout" | "loading">>, h.JSX.HTMLAttributes<SortableList> {
  oncalciteListOrderChange?: EventHandler<SortableList["calciteListOrderChange"]>;
}

interface LuminaCalciteSplitButton extends Partial<Pick<SplitButton, "appearance" | "disabled" | "download" | "dropdownIconType" | "dropdownLabel" | "flipPlacements" | "href" | "kind" | "loading" | "overlayPositioning" | "placement" | "primaryIconEnd" | "primaryIconFlipRtl" | "primaryIconStart" | "primaryLabel" | "primaryText" | "rel" | "scale" | "target" | "topLayerDisabled" | "width">>, h.JSX.HTMLAttributes<SplitButton> {
  oncalciteSplitButtonPrimaryClick?: EventHandler<SplitButton["calciteSplitButtonPrimaryClick"]>;
  oncalciteSplitButtonSecondaryClick?: EventHandler<SplitButton["calciteSplitButtonSecondaryClick"]>;
}

interface LuminaCalciteStack extends Partial<Pick<Stack, "disabled">>, h.JSX.HTMLAttributes<Stack> {
}

interface LuminaCalciteStepper extends Partial<Pick<Stepper, "icon" | "layout" | "messageOverrides" | "numbered" | "numberingSystem" | "scale">>, h.JSX.HTMLAttributes<Stepper> {
  oncalciteStepperChange?: EventHandler<Stepper["calciteStepperChange"]>;
}

interface LuminaCalciteStepperItem extends Partial<Pick<StepperItem, "complete" | "description" | "disabled" | "error" | "heading" | "iconFlipRtl" | "messageOverrides" | "selected">>, h.JSX.HTMLAttributes<StepperItem> {
  oncalciteStepperItemSelect?: EventHandler<StepperItem["calciteStepperItemSelect"]>;
}

interface LuminaCalciteSwatch extends Required<Pick<Swatch, "label">>, Partial<Pick<Swatch, "color" | "disabled" | "scale" | "selected" | "value">>, h.JSX.HTMLAttributes<Swatch> {
  oncalciteSwatchSelect?: EventHandler<Swatch["calciteSwatchSelect"]>;
}

interface LuminaCalciteSwatchGroup extends Required<Pick<SwatchGroup, "label">>, Partial<Pick<SwatchGroup, "disabled" | "scale" | "selectionMode">>, h.JSX.HTMLAttributes<SwatchGroup> {
  oncalciteSwatchGroupSelect?: EventHandler<SwatchGroup["calciteSwatchGroupSelect"]>;
}

interface LuminaCalciteSwitch extends Partial<Pick<Switch, "checked" | "disabled" | "form" | "label" | "labelTextEnd" | "labelTextStart" | "name" | "scale" | "value">>, h.JSX.HTMLAttributes<Switch> {
  oncalciteSwitchChange?: EventHandler<Switch["calciteSwitchChange"]>;
}

interface LuminaCalciteTab extends Partial<Pick<Tab, "selected" | "tab">>, h.JSX.HTMLAttributes<Tab> {
}

interface LuminaCalciteTabNav extends Partial<Pick<TabNav, "messageOverrides" | "position" | "storageId" | "syncId">>, h.JSX.HTMLAttributes<TabNav> {
  oncalciteTabChange?: EventHandler<TabNav["calciteTabChange"]>;
}

interface LuminaCalciteTabTitle extends Partial<Pick<TabTitle, "closable" | "closed" | "disabled" | "iconEnd" | "iconFlipRtl" | "iconStart" | "messageOverrides" | "position" | "selected" | "tab">>, h.JSX.HTMLAttributes<TabTitle> {
  oncalciteTabsActivate?: EventHandler<TabTitle["calciteTabsActivate"]>;
  oncalciteTabsClose?: EventHandler<TabTitle["calciteTabsClose"]>;
}

interface LuminaCalciteTable extends Required<Pick<Table, "caption">>, Partial<Pick<Table, "bordered" | "currentPage" | "groupSeparator" | "interactionMode" | "layout" | "messageOverrides" | "numbered" | "numberingSystem" | "pageSize" | "scale" | "selectionDisplay" | "selectionMode" | "striped">>, h.JSX.HTMLAttributes<Table> {
  oncalciteTablePageChange?: EventHandler<Table["calciteTablePageChange"]>;
  oncalciteTableSelect?: EventHandler<Table["calciteTableSelect"]>;
}

interface LuminaCalciteTableCell extends Partial<Pick<TableCell, "alignment" | "colSpan" | "messageOverrides" | "rowSpan">>, h.JSX.HTMLAttributes<TableCell> {
}

interface LuminaCalciteTableHeader extends Partial<Pick<TableHeader, "alignment" | "colSpan" | "description" | "heading" | "messageOverrides" | "rowSpan">>, h.JSX.HTMLAttributes<TableHeader> {
}

interface LuminaCalciteTableRow extends Partial<Pick<TableRow, "alignment" | "disabled" | "selected">>, h.JSX.HTMLAttributes<TableRow> {
  oncalciteTableRowSelect?: EventHandler<TableRow["calciteTableRowSelect"]>;
}

interface LuminaCalciteTabs extends Partial<Pick<Tabs, "bordered" | "layout" | "position" | "scale">>, h.JSX.HTMLAttributes<Tabs> {
}

interface LuminaCalciteTextArea extends Partial<Pick<TextArea, "columns" | "disabled" | "form" | "groupSeparator" | "label" | "labelText" | "limitText" | "loading" | "maxLength" | "messageOverrides" | "minLength" | "name" | "numberingSystem" | "placeholder" | "readOnly" | "required" | "resize" | "rows" | "scale" | "status" | "validationIcon" | "validationMessage" | "value" | "wrap">>, h.JSX.HTMLAttributes<TextArea> {
  oncalciteTextAreaChange?: EventHandler<TextArea["calciteTextAreaChange"]>;
  oncalciteTextAreaInput?: EventHandler<TextArea["calciteTextAreaInput"]>;
}

interface LuminaCalciteTile extends Partial<Pick<Tile, "active" | "alignment" | "description" | "disabled" | "embed" | "heading" | "headingLevel" | "href" | "icon" | "iconFlipRtl" | "label" | "scale" | "selected">>, h.JSX.HTMLAttributes<Tile> {
  oncalciteTileSelect?: EventHandler<Tile["calciteTileSelect"]>;
}

interface LuminaCalciteTileGroup extends Required<Pick<TileGroup, "label">>, Partial<Pick<TileGroup, "alignment" | "disabled" | "layout" | "scale" | "selectionAppearance" | "selectionMode">>, h.JSX.HTMLAttributes<TileGroup> {
  oncalciteTileGroupSelect?: EventHandler<TileGroup["calciteTileGroupSelect"]>;
}

interface LuminaCalciteTimePicker extends Partial<Pick<TimePicker, "hourFormat" | "messageOverrides" | "numberingSystem" | "scale" | "step" | "time" | "value">>, h.JSX.HTMLAttributes<TimePicker> {
  oncalciteTimePickerChange?: EventHandler<TimePicker["calciteTimePickerChange"]>;
}

interface LuminaCalciteTooltip extends Partial<Pick<Tooltip, "closeOnClick" | "label" | "offsetDistance" | "offsetSkidding" | "open" | "overlayPositioning" | "placement" | "pointerDisabled" | "referenceElement" | "scale" | "topLayerDisabled">>, h.JSX.HTMLAttributes<Tooltip> {
  oncalciteTooltipBeforeClose?: EventHandler<Tooltip["calciteTooltipBeforeClose"]>;
  oncalciteTooltipBeforeOpen?: EventHandler<Tooltip["calciteTooltipBeforeOpen"]>;
  oncalciteTooltipClose?: EventHandler<Tooltip["calciteTooltipClose"]>;
  oncalciteTooltipOpen?: EventHandler<Tooltip["calciteTooltipOpen"]>;
}

interface LuminaCalciteTree extends Partial<Pick<Tree, "lines" | "scale" | "selectionMode">>, h.JSX.HTMLAttributes<Tree> {
  oncalciteTreeSelect?: EventHandler<Tree["calciteTreeSelect"]>;
}

interface LuminaCalciteTreeItem extends Partial<Pick<TreeItem, "disabled" | "expanded" | "iconFlipRtl" | "iconStart" | "label" | "selected">>, h.JSX.HTMLAttributes<TreeItem> {
  oncalciteTreeItemCollapse?: EventHandler<TreeItem["calciteTreeItemCollapse"]>;
  oncalciteTreeItemExpand?: EventHandler<TreeItem["calciteTreeItemExpand"]>;
  oncalciteTreeItemSelect?: EventHandler<TreeItem["calciteTreeItemSelect"]>;
}

declare module "@arcgis/lumina" {
  export namespace h.JSX {
    interface IntrinsicElements {
      "calcite-accordion": LuminaCalciteAccordion;
      "calcite-accordion-item": LuminaCalciteAccordionItem;
      "calcite-action": LuminaCalciteAction;
      "calcite-action-bar": LuminaCalciteActionBar;
      "calcite-action-group": LuminaCalciteActionGroup;
      "calcite-action-menu": LuminaCalciteActionMenu;
      "calcite-action-pad": LuminaCalciteActionPad;
      "calcite-alert": LuminaCalciteAlert;
      "calcite-autocomplete": LuminaCalciteAutocomplete;
      "calcite-autocomplete-item": LuminaCalciteAutocompleteItem;
      "calcite-autocomplete-item-group": LuminaCalciteAutocompleteItemGroup;
      "calcite-avatar": LuminaCalciteAvatar;
      "calcite-block": LuminaCalciteBlock;
      "calcite-block-group": LuminaCalciteBlockGroup;
      "calcite-block-section": LuminaCalciteBlockSection;
      "calcite-button": LuminaCalciteButton;
      "calcite-card": LuminaCalciteCard;
      "calcite-card-group": LuminaCalciteCardGroup;
      "calcite-carousel": LuminaCalciteCarousel;
      "calcite-carousel-item": LuminaCalciteCarouselItem;
      "calcite-checkbox": LuminaCalciteCheckbox;
      "calcite-chip": LuminaCalciteChip;
      "calcite-chip-group": LuminaCalciteChipGroup;
      "calcite-color-picker": LuminaCalciteColorPicker;
      "calcite-color-picker-hex-input": LuminaCalciteColorPickerHexInput;
      "calcite-color-picker-swatch": LuminaCalciteColorPickerSwatch;
      "calcite-combobox": LuminaCalciteCombobox;
      "calcite-combobox-item": LuminaCalciteComboboxItem;
      "calcite-combobox-item-group": LuminaCalciteComboboxItemGroup;
      "calcite-date-picker": LuminaCalciteDatePicker;
      "calcite-date-picker-day": LuminaCalciteDatePickerDay;
      "calcite-date-picker-month": LuminaCalciteDatePickerMonth;
      "calcite-dialog": LuminaCalciteDialog;
      "calcite-dropdown": LuminaCalciteDropdown;
      "calcite-dropdown-group": LuminaCalciteDropdownGroup;
      "calcite-dropdown-item": LuminaCalciteDropdownItem;
      "calcite-fab": LuminaCalciteFab;
      "calcite-filter": LuminaCalciteFilter;
      "calcite-flow": LuminaCalciteFlow;
      "calcite-flow-item": LuminaCalciteFlowItem;
      "calcite-focus-trap": LuminaCalciteFocusTrap;
      "calcite-graph": LuminaCalciteGraph;
      "calcite-handle": LuminaCalciteHandle;
      "calcite-icon": LuminaCalciteIcon;
      "calcite-inline-editable": LuminaCalciteInlineEditable;
      "calcite-input": LuminaCalciteInput;
      "calcite-input-date-picker": LuminaCalciteInputDatePicker;
      "calcite-input-message": LuminaCalciteInputMessage;
      "calcite-input-number": LuminaCalciteInputNumber;
      "calcite-input-text": LuminaCalciteInputText;
      "calcite-input-time-picker": LuminaCalciteInputTimePicker;
      "calcite-input-time-zone": LuminaCalciteInputTimeZone;
      "calcite-label": LuminaCalciteLabel;
      "calcite-link": LuminaCalciteLink;
      "calcite-list": LuminaCalciteList;
      "calcite-list-item": LuminaCalciteListItem;
      "calcite-list-item-group": LuminaCalciteListItemGroup;
      "calcite-loader": LuminaCalciteLoader;
      "calcite-menu": LuminaCalciteMenu;
      "calcite-menu-item": LuminaCalciteMenuItem;
      "calcite-meter": LuminaCalciteMeter;
      "calcite-navigation": LuminaCalciteNavigation;
      "calcite-navigation-logo": LuminaCalciteNavigationLogo;
      "calcite-navigation-user": LuminaCalciteNavigationUser;
      "calcite-notice": LuminaCalciteNotice;
      "calcite-option": LuminaCalciteOption;
      "calcite-option-group": LuminaCalciteOptionGroup;
      "calcite-pagination": LuminaCalcitePagination;
      "calcite-panel": LuminaCalcitePanel;
      "calcite-popover": LuminaCalcitePopover;
      "calcite-progress": LuminaCalciteProgress;
      "calcite-radio-button": LuminaCalciteRadioButton;
      "calcite-radio-button-group": LuminaCalciteRadioButtonGroup;
      "calcite-rating": LuminaCalciteRating;
      "calcite-scrim": LuminaCalciteScrim;
      "calcite-segmented-control": LuminaCalciteSegmentedControl;
      "calcite-segmented-control-item": LuminaCalciteSegmentedControlItem;
      "calcite-select": LuminaCalciteSelect;
      "calcite-sheet": LuminaCalciteSheet;
      "calcite-shell": LuminaCalciteShell;
      "calcite-shell-panel": LuminaCalciteShellPanel;
      "calcite-slider": LuminaCalciteSlider;
      "calcite-sort-handle": LuminaCalciteSortHandle;
      "calcite-sortable-list": LuminaCalciteSortableList;
      "calcite-split-button": LuminaCalciteSplitButton;
      "calcite-stack": LuminaCalciteStack;
      "calcite-stepper": LuminaCalciteStepper;
      "calcite-stepper-item": LuminaCalciteStepperItem;
      "calcite-swatch": LuminaCalciteSwatch;
      "calcite-swatch-group": LuminaCalciteSwatchGroup;
      "calcite-switch": LuminaCalciteSwitch;
      "calcite-tab": LuminaCalciteTab;
      "calcite-tab-nav": LuminaCalciteTabNav;
      "calcite-tab-title": LuminaCalciteTabTitle;
      "calcite-table": LuminaCalciteTable;
      "calcite-table-cell": LuminaCalciteTableCell;
      "calcite-table-header": LuminaCalciteTableHeader;
      "calcite-table-row": LuminaCalciteTableRow;
      "calcite-tabs": LuminaCalciteTabs;
      "calcite-text-area": LuminaCalciteTextArea;
      "calcite-tile": LuminaCalciteTile;
      "calcite-tile-group": LuminaCalciteTileGroup;
      "calcite-time-picker": LuminaCalciteTimePicker;
      "calcite-tooltip": LuminaCalciteTooltip;
      "calcite-tree": LuminaCalciteTree;
      "calcite-tree-item": LuminaCalciteTreeItem;
    }
  }
}