/// <reference types="../index.d.ts" />
import type { ArcgisSolutionsAssistant } from "../components/arcgis-solutions-assistant/customElement.js";
import type { BufferTools } from "../components/buffer-tools/customElement.js";
import type { CardManager } from "../components/card-manager/customElement.js";
import type { ConsentManager } from "../components/consent-manager/customElement.js";
import type { CreateFeature } from "../components/create-feature/customElement.js";
import type { CreateRelatedFeature } from "../components/create-related-feature/customElement.js";
import type { CrowdsourceManager } from "../components/crowdsource-manager/customElement.js";
import type { CrowdsourceReporter } from "../components/crowdsource-reporter/customElement.js";
import type { DeductCalculator } from "../components/deduct-calculator/customElement.js";
import type { DeleteButton } from "../components/delete-button/customElement.js";
import type { DeleteDialog } from "../components/delete-dialog/customElement.js";
import type { EditCard } from "../components/edit-card/customElement.js";
import type { FeatureDetails } from "../components/feature-details/customElement.js";
import type { FeatureList } from "../components/feature-list/customElement.js";
import type { FieldSelection } from "../components/field-selection/customElement.js";
import type { InfoCard } from "../components/info-card/customElement.js";
import type { LayerList } from "../components/layer-list/customElement.js";
import type { LayerListWidget } from "../components/layer-list-widget/customElement.js";
import type { LayerTable } from "../components/layer-table/customElement.js";
import type { MapBasemapGallery } from "../components/map-basemap-gallery/customElement.js";
import type { MapCard } from "../components/map-card/customElement.js";
import type { MapDrawTools } from "../components/map-draw-tools/customElement.js";
import type { MapFloorFilter } from "../components/map-floor-filter/customElement.js";
import type { MapFullscreen } from "../components/map-fullscreen/customElement.js";
import type { MapLayerPicker } from "../components/map-layer-picker/customElement.js";
import type { MapLegend } from "../components/map-legend/customElement.js";
import type { MapPicker } from "../components/map-picker/customElement.js";
import type { MapSearch } from "../components/map-search/customElement.js";
import type { MapSelectTools } from "../components/map-select-tools/customElement.js";
import type { MapTools } from "../components/map-tools/customElement.js";
import type { PciCalculator } from "../components/pci-calculator/customElement.js";
import type { PdfDownload } from "../components/pdf-download/customElement.js";
import type { PublicNotification } from "../components/public-notification/customElement.js";
import type { RefineSelection } from "../components/refine-selection/customElement.js";
import type { SelectionTool } from "../components/selection-tool/customElement.js";
import type { SolutionBuilderAssistant } from "../components/solution-builder-assistant/customElement.js";
import type { SolutionConfigureTitles } from "../components/solution-configure-titles/customElement.js";
import type { SolutionDeleteDialog } from "../components/solution-delete-dialog/customElement.js";
import type { SolutionDeployDialog } from "../components/solution-deploy-dialog/customElement.js";
import type { SolutionDeployedCard } from "../components/solution-deployed-card/customElement.js";
import type { SolutionDeployedCardPanel } from "../components/solution-deployed-card-panel/customElement.js";
import type { SolutionDeployingDialog } from "../components/solution-deploying-dialog/customElement.js";
import type { SolutionDetailsCard } from "../components/solution-details-card/customElement.js";
import type { SolutionDetailsPanel } from "../components/solution-details-panel/customElement.js";
import type { SolutionItemAccordion } from "../components/solution-item-accordion/customElement.js";
import type { SolutionItemDiagram } from "../components/solution-item-diagram/customElement.js";
import type { SolutionItemIcon } from "../components/solution-item-icon/customElement.js";
import type { SolutionResourceCard } from "../components/solution-resource-card/customElement.js";
import type { SolutionSnapshotGallery } from "../components/solution-snapshot-gallery/customElement.js";
import type { SolutionSocialShare } from "../components/solution-social-share/customElement.js";
import type { SolutionUserAvatar } from "../components/solution-user-avatar/customElement.js";
import type { SolutionsAllPanel } from "../components/solutions-all-panel/customElement.js";
import type { SolutionsAllShell } from "../components/solutions-all-shell/customElement.js";
import type { SolutionsDeployApp } from "../components/solutions-deploy-app/customElement.js";
import type { SolutionsDeployAppNav } from "../components/solutions-deploy-app-nav/customElement.js";
import type { SolutionsDeployedList } from "../components/solutions-deployed-list/customElement.js";
import type { SolutionsDeployedPanel } from "../components/solutions-deployed-panel/customElement.js";
import type { SolutionsDeployedShell } from "../components/solutions-deployed-shell/customElement.js";
import type { SolutionsFilterPanel } from "../components/solutions-filter-panel/customElement.js";
import type { SolutionsResourcesSection } from "../components/solutions-resources-section/customElement.js";
import type { SolutionsResourcesShell } from "../components/solutions-resources-shell/customElement.js";
import type { SolutionsSearchSortToolbar } from "../components/solutions-searchsort-toolbar/customElement.js";
import type { h, EventHandler } from "@arcgis/lumina";

interface LuminaArcgisSolutionsAssistant extends Partial<Pick<ArcgisSolutionsAssistant, "builderVisible" | "hasActiveBuilderDesign" | "open" | "userFirstName">>, h.JSX.HTMLAttributes<ArcgisSolutionsAssistant> {
  onassistantProcessing?: EventHandler<ArcgisSolutionsAssistant["assistantProcessing"]>;
  oncloseAssistant?: EventHandler<ArcgisSolutionsAssistant["closeAssistant"]>;
}

interface LuminaBufferTools extends Partial<Pick<BufferTools, "appearance" | "disabled" | "distance" | "geometries" | "max" | "min" | "sliderTicks" | "unionResults" | "unit">>, h.JSX.HTMLAttributes<BufferTools> {
  onbufferComplete?: EventHandler<BufferTools["bufferComplete"]>;
  ondistanceChanged?: EventHandler<BufferTools["distanceChanged"]>;
  onunitChanged?: EventHandler<BufferTools["unitChanged"]>;
}

interface LuminaCardManager extends Partial<Pick<CardManager, "allowedPasteLayerIds" | "createBtnLabel" | "customInfoText" | "enableCreateFeatures" | "enableEditGeometry" | "enableSnapping" | "isMobile" | "layerOrTable" | "mapComponentId" | "mapView" | "pasteEnabled" | "selectedFeaturesIds" | "selectingFeatureFromMap" | "showCopyPasteActions" | "showSketchWidgets" | "zoomAndScrollToSelected">>, h.JSX.HTMLAttributes<CardManager> {
  onbackFromCreateWorkFlow?: EventHandler<CardManager["backFromCreateWorkFlow"]>;
  oncreateWorkFlowStarted?: EventHandler<CardManager["createWorkFlowStarted"]>;
  ondisablePaste?: EventHandler<CardManager["disablePaste"]>;
  onfeatureOrRecordSubmitted?: EventHandler<CardManager["featureOrRecordSubmitted"]>;
  onfeaturesCopied?: EventHandler<CardManager["featuresCopied"]>;
  onfeaturesPasted?: EventHandler<CardManager["featuresPasted"]>;
}

interface LuminaConsentManager extends Required<Pick<ConsentManager, "firstUseVar">>, Partial<Pick<ConsentManager, "amazonAppId" | "amazonAppName" | "amazonUserPoolID" | "amazonVersion" | "measurementIds" | "portal">>, h.JSX.HTMLAttributes<ConsentManager> {
  onconsentGranted?: EventHandler<ConsentManager["consentGranted"]>;
}

interface LuminaCreateFeature extends Partial<Pick<CreateFeature, "aiImageExtraction" | "aiTextExtraction" | "allowMultipleCreation" | "appName" | "customizeSubmit" | "enableMessageLocation" | "enablePhotoLocation" | "enableSearch" | "enableSnapping" | "floorLevel" | "formElements" | "isMobile" | "mapView" | "popupEnabled" | "reportingArea" | "reportingAreaLayer" | "reportingAreaMessage" | "searchConfiguration" | "selectedLayerId" | "showGuidingMsg" | "showLayerVisibilityMsg" | "showSketchWidgets" | "submitNewReportsMessage" | "updateMapPosition">>, h.JSX.HTMLAttributes<CreateFeature> {
  onactiveFeatureCountChange?: EventHandler<CreateFeature["activeFeatureCountChange"]>;
  oncreateFeatureEditorClosed?: EventHandler<CreateFeature["createFeatureEditorClosed"]>;
  oncreateFeatureEditorInitialized?: EventHandler<CreateFeature["createFeatureEditorInitialized"]>;
  ondrawComplete?: EventHandler<CreateFeature["drawComplete"]>;
  oneditingAttachment?: EventHandler<CreateFeature["editingAttachment"]>;
  oneditingLocation?: EventHandler<CreateFeature["editingLocation"]>;
  onfail?: EventHandler<CreateFeature["fail"]>;
  onmodeChanged?: EventHandler<CreateFeature["modeChanged"]>;
  onprogressStatus?: EventHandler<CreateFeature["progressStatus"]>;
  onsuccess?: EventHandler<CreateFeature["success"]>;
}

interface LuminaCreateRelatedFeature extends Partial<Pick<CreateRelatedFeature, "customizeSubmit" | "enableSnapping" | "mapView" | "selectedFeature" | "showGuidingMsg" | "table">>, h.JSX.HTMLAttributes<CreateRelatedFeature> {
  onfail?: EventHandler<CreateRelatedFeature["fail"]>;
  onformReady?: EventHandler<CreateRelatedFeature["formReady"]>;
  onisActionPending?: EventHandler<CreateRelatedFeature["isActionPending"]>;
  onsuccess?: EventHandler<CreateRelatedFeature["success"]>;
}

interface LuminaCrowdsourceManager extends Partial<Pick<CrowdsourceManager, "appLayout" | "appProxies" | "basemapConfig" | "coverPageEnabled" | "customInfoText" | "defaultAppLayout" | "defaultCenter" | "defaultGlobalId" | "defaultLayer" | "defaultLevel" | "defaultOid" | "defaultWebmap" | "enableAutoRefresh" | "enableBasemap" | "enableColumnReorder" | "enableCopyPaste" | "enableCSV" | "enableFloorFilter" | "enableFullscreen" | "enableHome" | "enableLayerList" | "enableLegend" | "enableMapList" | "enableSearch" | "enableSelectionTool" | "enableShare" | "enableSnapping" | "enableZoom" | "featureSelectionMode" | "honorMapFieldSettings" | "introductionWindowEnabled" | "mapInfos" | "onlyShowUpdatableLayers" | "popupHeaderColor" | "popupHeaderHoverColor" | "popupHeaderHoverTextColor" | "popupHeaderTextColor" | "searchConfiguration" | "shareIncludeEmbed" | "shareIncludeSocial" | "showNewestFirst" | "theme" | "visibilityIcon" | "zoomAndScrollToSelected" | "zoomToScale">>, h.JSX.HTMLAttributes<CrowdsourceManager> {
  onshowCoverPage?: EventHandler<CrowdsourceManager["showCoverPage"]>;
  onshowIntroductionWindow?: EventHandler<CrowdsourceManager["showIntroductionWindow"]>;
}

interface LuminaCrowdsourceReporter extends Partial<Pick<CrowdsourceReporter, "aiImageExtraction" | "aiTextExtraction" | "center" | "commentButtonText" | "commentSubmittedMessage" | "defaultWebmap" | "description" | "enableAnonymousAccess" | "enableAnonymousComments" | "enableComments" | "enableHome" | "enableLogin" | "enableMessageLocation" | "enableNewReports" | "enablePhotoLocation" | "enableSearch" | "enableSnapping" | "enableZoom" | "filterByMapExtent" | "floorLevel" | "isMobile" | "layerExpressions" | "layerId" | "level" | "loginTitle" | "mapInfos" | "mapView" | "objectId" | "reportButtonText" | "reportingArea" | "reportingAreaLayer" | "reportingAreaMessage" | "reportingOptions" | "reportsHeader" | "reportSubmittedMessage" | "searchConfiguration" | "showComments" | "showFeatureSymbol" | "showFullCommentTitle" | "showMyReportsOnly" | "showUserImageInCommentsList" | "sortFields" | "sortOption" | "submitNewReportsMessage" | "theme" | "zoomToScale">>, h.JSX.HTMLAttributes<CrowdsourceReporter> {
  ontogglePanel?: EventHandler<CrowdsourceReporter["togglePanel"]>;
}

interface LuminaDeductCalculator extends h.JSX.HTMLAttributes<DeductCalculator> {
  ondeductValueComplete?: EventHandler<DeductCalculator["deductValueComplete"]>;
}

interface LuminaDeleteButton extends Partial<Pick<DeleteButton, "buttonType" | "deleteDialog" | "disabled" | "icon" | "ids" | "layer" | "showDeleteCount">>, h.JSX.HTMLAttributes<DeleteButton> {
  ondeleteClicked?: EventHandler<DeleteButton["deleteClicked"]>;
  oneditsComplete?: EventHandler<DeleteButton["editsComplete"]>;
}

interface LuminaDeleteDialog extends Partial<Pick<DeleteDialog, "ids" | "layer" | "open">>, h.JSX.HTMLAttributes<DeleteDialog> {
  ondeleteDialogClose?: EventHandler<DeleteDialog["deleteDialogClose"]>;
  oneditsComplete?: EventHandler<DeleteDialog["editsComplete"]>;
}

interface LuminaEditCard extends Partial<Pick<EditCard, "allowMultipleEditing" | "enableEditGeometry" | "enableSnapping" | "graphicIndex" | "graphics" | "mapView" | "open">>, h.JSX.HTMLAttributes<EditCard> {
  oncloseEdit?: EventHandler<EditCard["closeEdit"]>;
  oncreatingFeature?: EventHandler<EditCard["creatingFeature"]>;
  oneditorInitialized?: EventHandler<EditCard["editorInitialized"]>;
  oneditsComplete?: EventHandler<EditCard["editsComplete"]>;
  onrefreshGraphics?: EventHandler<EditCard["refreshGraphics"]>;
}

interface LuminaFeatureDetails extends Partial<Pick<FeatureDetails, "enableSnapping" | "graphics" | "layerItemsHash" | "mapView" | "reportingOptions" | "showFullCommentTitle" | "showUserImageInCommentsList">>, h.JSX.HTMLAttributes<FeatureDetails> {
  onaddComment?: EventHandler<FeatureDetails["addComment"]>;
  oncommentClick?: EventHandler<FeatureDetails["commentClick"]>;
  oncommentSelect?: EventHandler<FeatureDetails["commentSelect"]>;
  onfeatureSelectionChange?: EventHandler<FeatureDetails["featureSelectionChange"]>;
  onlikeOrDislikeClicked?: EventHandler<FeatureDetails["likeOrDislikeClicked"]>;
  onloadingStatus?: EventHandler<FeatureDetails["loadingStatus"]>;
}

interface LuminaFeatureList extends Partial<Pick<FeatureList, "applyLayerViewFilter" | "filterByMapExtent" | "highlightOnHover" | "highlightOnMap" | "mapView" | "noFeaturesFoundMsg" | "pageSize" | "reportingOptions" | "selectedLayerId" | "showErrorWhenNoFeatures" | "showFeatureSymbol" | "showFullTitle" | "showInitialLoading" | "showUserImageInList" | "sortingInfo" | "textSize" | "whereClause">>, h.JSX.HTMLAttributes<FeatureList> {
  onfeatureClick?: EventHandler<FeatureList["featureClick"]>;
  onfeatureSelect?: EventHandler<FeatureList["featureSelect"]>;
}

interface LuminaFieldSelection extends Partial<Pick<FieldSelection, "configExtraFields" | "layer" | "mapView" | "table" | "tableRef">>, h.JSX.HTMLAttributes<FieldSelection> {
}

interface LuminaInfoCard extends Partial<Pick<InfoCard, "allowEditing" | "enableEditGeometry" | "enableSnapping" | "featuresReferenceId" | "graphics" | "highlightEnabled" | "isLoading" | "isMobile" | "mapView" | "paginationEnabled" | "pasteEnabled" | "position" | "showCloseBtn" | "showCopyPasteActions">>, h.JSX.HTMLAttributes<InfoCard> {
  onclearSelection?: EventHandler<InfoCard["clearSelection"]>;
  oncopyFeatures?: EventHandler<InfoCard["copyFeatures"]>;
  onpasteFeatures?: EventHandler<InfoCard["pasteFeatures"]>;
  onpopupClosed?: EventHandler<InfoCard["popupClosed"]>;
  onselectionChanged?: EventHandler<InfoCard["selectionChanged"]>;
}

interface LuminaLayerList extends Partial<Pick<LayerList, "applyLayerViewFilter" | "filterByMapExtent" | "layers" | "mapView" | "showFeatureCount" | "showNextIcon">>, h.JSX.HTMLAttributes<LayerList> {
  onlayerSelect?: EventHandler<LayerList["layerSelect"]>;
  onlayersListLoaded?: EventHandler<LayerList["layersListLoaded"]>;
}

interface LuminaLayerListWidget extends Partial<Pick<LayerListWidget, "layerListRef" | "mapView" | "visibilityIcon">>, h.JSX.HTMLAttributes<LayerListWidget> {
}

interface LuminaLayerTable extends Partial<Pick<LayerTable, "appLayout" | "defaultGlobalId" | "defaultLayerId" | "defaultOid" | "enableAutoRefresh" | "enableColumnReorder" | "enableCSV" | "enableInlineEdit" | "enableShare" | "enableTableAutosave" | "featureSelectionMode" | "honorMapFieldSettings" | "isMobile" | "layerIds" | "mapHidden" | "mapInfo" | "mapView" | "pasteEnabled" | "selectedIds" | "selectedRelatedIds" | "shareIncludeEmbed" | "shareIncludeSocial" | "showCopyPasteActions" | "showNewestFirst" | "showOnlyUpdatableLayers" | "zoomAndScrollToSelected" | "zoomToScale">>, h.JSX.HTMLAttributes<LayerTable> {
  onbeforeFeatureSelectionChange?: EventHandler<LayerTable["beforeFeatureSelectionChange"]>;
  oncolumnReorder?: EventHandler<LayerTable["columnReorder"]>;
  oncontinueEditing?: EventHandler<LayerTable["continueEditing"]>;
  oncopyFeatures?: EventHandler<LayerTable["copyFeatures"]>;
  oneditMultipleFeatures?: EventHandler<LayerTable["editMultipleFeatures"]>;
  onfeaturesAdded?: EventHandler<LayerTable["featuresAdded"]>;
  onfeatureSelectionChange?: EventHandler<LayerTable["featureSelectionChange"]>;
  oninitCreateComponent?: EventHandler<LayerTable["initCreateComponent"]>;
  onpasteFeatures?: EventHandler<LayerTable["pasteFeatures"]>;
  onrelatedRecordToggled?: EventHandler<LayerTable["relatedRecordToggled"]>;
  onrequestLayerSelectionChange?: EventHandler<LayerTable["requestLayerSelectionChange"]>;
  onshowDelete?: EventHandler<LayerTable["showDelete"]>;
  ontoggleFilter?: EventHandler<LayerTable["toggleFilter"]>;
}

interface LuminaMapBasemapGallery extends Partial<Pick<MapBasemapGallery, "basemapConfig" | "basemapGalleryRef" | "mapView">>, h.JSX.HTMLAttributes<MapBasemapGallery> {
}

interface LuminaMapCard extends Partial<Pick<MapCard, "appLayout" | "appProxies" | "basemapConfig" | "defaultLayerId" | "defaultWebmapId" | "enableBasemap" | "enableFloorFilter" | "enableFullscreen" | "enableHome" | "enableLayerList" | "enableLegend" | "enableMapLayerPicker" | "enableMapPicker" | "enableSearch" | "enableSelectionTool" | "enableShare" | "enableSingleExpand" | "featureSelectionMode" | "hide" | "isMapLayout" | "isMobile" | "mapComponentId" | "mapInfo" | "mapInfos" | "mapToolsOrder" | "mapView" | "mapWidgetsIndex" | "mapWidgetsPosition" | "mapWidgetsSize" | "mobileMapWidgetsPosition" | "mobileToolsOrder" | "pasteEnabled" | "selectedFeaturesIds" | "selectedLayer" | "shareIncludeEmbed" | "shareIncludeSocial" | "showCopyPasteActions" | "showOnlyUpdatableLayers" | "stackTools" | "theme" | "visibilityIcon" | "zoomToolsSize" | "zoomToScale">>, h.JSX.HTMLAttributes<MapCard> {
  onbeforeMapChanged?: EventHandler<MapCard["beforeMapChanged"]>;
  onclearSelection?: EventHandler<MapCard["clearSelection"]>;
  oncopyFeatures?: EventHandler<MapCard["copyFeatures"]>;
  oneditMultipleFeatures?: EventHandler<MapCard["editMultipleFeatures"]>;
  onfeaturesCopied?: EventHandler<MapCard["featuresCopied"]>;
  onmapChanged?: EventHandler<MapCard["mapChanged"]>;
  onpasteFeatures?: EventHandler<MapCard["pasteFeatures"]>;
  ontoggleFilter?: EventHandler<MapCard["toggleFilter"]>;
}

interface LuminaMapDrawTools extends Partial<Pick<MapDrawTools, "active" | "drawMode" | "editGraphicsEnabled" | "graphics" | "mapView" | "pointSymbol" | "polygonSymbol" | "polylineSymbol" | "redoEnabled" | "undoEnabled">>, h.JSX.HTMLAttributes<MapDrawTools> {
  ondrawRedo?: EventHandler<MapDrawTools["drawRedo"]>;
  ondrawUndo?: EventHandler<MapDrawTools["drawUndo"]>;
  onselectionLoadingChange?: EventHandler<MapDrawTools["selectionLoadingChange"]>;
  onsketchGraphicsChange?: EventHandler<MapDrawTools["sketchGraphicsChange"]>;
}

interface LuminaMapFloorFilter extends Partial<Pick<MapFloorFilter, "enabled" | "floorFilterRef" | "mapView">>, h.JSX.HTMLAttributes<MapFloorFilter> {
  onfacilityChanged?: EventHandler<MapFloorFilter["facilityChanged"]>;
  onlevelChanged?: EventHandler<MapFloorFilter["levelChanged"]>;
  onsiteChanged?: EventHandler<MapFloorFilter["siteChanged"]>;
}

interface LuminaMapFullscreen extends Partial<Pick<MapFullscreen, "fullscreenRef" | "mapView">>, h.JSX.HTMLAttributes<MapFullscreen> {
  onfullscreenStateChange?: EventHandler<MapFullscreen["fullscreenStateChange"]>;
}

interface LuminaMapLayerPicker extends Partial<Pick<MapLayerPicker, "appearance" | "configLayerOrderDefined" | "defaultLayerId" | "disabled" | "display" | "enabledLayerIds" | "height" | "isMobile" | "mapView" | "placeholderIcon" | "referenceElement" | "scale" | "selectedIds" | "showLayersListInPopover" | "showOnlyUpdatableLayers" | "showSingleLayerAsLabel" | "showTables" | "showTablesDisabled" | "type">>, h.JSX.HTMLAttributes<MapLayerPicker> {
  onbeforeLayerSelectionChange?: EventHandler<MapLayerPicker["beforeLayerSelectionChange"]>;
  onidsFound?: EventHandler<MapLayerPicker["idsFound"]>;
  onlayerSelectionChange?: EventHandler<MapLayerPicker["layerSelectionChange"]>;
  onnoLayersFound?: EventHandler<MapLayerPicker["noLayersFound"]>;
}

interface LuminaMapLegend extends Partial<Pick<MapLegend, "legendRef" | "mapView">>, h.JSX.HTMLAttributes<MapLegend> {
}

interface LuminaMapPicker extends Partial<Pick<MapPicker, "height" | "isMapLayout" | "mapInfos" | "referenceElement" | "selectedWebMapId" | "showMapListInPopover">>, h.JSX.HTMLAttributes<MapPicker> {
  onbeforeMapInfoChange?: EventHandler<MapPicker["beforeMapInfoChange"]>;
  onmapInfoChange?: EventHandler<MapPicker["mapInfoChange"]>;
}

interface LuminaMapSearch extends Partial<Pick<MapSearch, "mapView" | "popupEnabled" | "resultGraphicEnabled" | "searchComponent" | "searchConfiguration" | "searchTerm">>, h.JSX.HTMLAttributes<MapSearch> {
}

interface LuminaMapSelectTools extends Partial<Pick<MapSelectTools, "bufferColor" | "bufferOutlineColor" | "customLabelEnabled" | "defaultBufferDistance" | "defaultBufferUnit" | "enabledLayerIds" | "enableLayerFeatures" | "enableLayerFeaturesOnLoad" | "enableSearchDistance" | "enableSearchDistanceOnLoad" | "enableSketchTools" | "geometries" | "headerLabelClass" | "isUpdate" | "layerViews" | "mapView" | "noResultText" | "searchConfiguration" | "searchDistanceEnabled" | "selectionLayerIds" | "selectionSet" | "selectLayerView" | "sketchLineSymbol" | "sketchPointSymbol" | "sketchPolygonSymbol" | "useLayerFeaturesEnabled">>, h.JSX.HTMLAttributes<MapSelectTools> {
  onselectionSetChange?: EventHandler<MapSelectTools["selectionSetChange"]>;
}

interface LuminaMapTools extends Partial<Pick<MapTools, "basemapConfig" | "configLayerOrderDefined" | "defaultLayerId" | "enableBasemap" | "enabledLayerIds" | "enableFloorFilter" | "enableFullscreen" | "enableHome" | "enableLayerList" | "enableLegend" | "enableMapLayerPicker" | "enableMapPicker" | "enableSearch" | "enableSelectionTool" | "enableSingleExpand" | "isMobile" | "layout" | "mapInfo" | "mapInfos" | "mapView" | "mapWidgetsSize" | "parentComponentHeight" | "parentComponentWidth" | "position" | "searchConfiguration" | "selectedFeaturesIds" | "selectedLayer" | "selectedWebMapId" | "selectionTools" | "showOnlyUpdatableLayers" | "stackTools" | "toolOrder" | "visibilityIcon" | "zoomToolsSize">>, h.JSX.HTMLAttributes<MapTools> {
  onclearSelection?: EventHandler<MapTools["clearSelection"]>;
}

interface LuminaPciCalculator extends h.JSX.HTMLAttributes<PciCalculator> {
}

interface LuminaPdfDownload extends Partial<Pick<PdfDownload, "defaultNumLabelsPerPage" | "disabled">>, h.JSX.HTMLAttributes<PdfDownload> {
}

interface LuminaPublicNotification extends Partial<Pick<PublicNotification, "addresseeLayerIds" | "bufferColor" | "bufferOutlineColor" | "customExport" | "customExportURL" | "customLabelEnabled" | "defaultBufferDistance" | "defaultBufferUnit" | "defaultExportTitle" | "defaultNumLabelsPerPage" | "enableLayerFeatures" | "enableLayerFeaturesOnLoad" | "enableSearchDistance" | "enableSearchDistanceOnLoad" | "enableSketchTools" | "featureEffect" | "featureHighlightEnabled" | "initialNotice" | "mapView" | "noResultText" | "searchConfiguration" | "selectionLayerIds" | "showRefineSelection" | "showSearchSettings" | "sketchLineSymbol" | "sketchPointSymbol" | "sketchPolygonSymbol">>, h.JSX.HTMLAttributes<PublicNotification> {
  onsearchConfigurationChange?: EventHandler<PublicNotification["searchConfigurationChange"]>;
}

interface LuminaRefineSelection extends Partial<Pick<RefineSelection, "addresseeLayer" | "bufferColor" | "bufferOutlineColor" | "defaultBufferDistance" | "defaultBufferUnit" | "drawnGraphicsArr" | "enabledLayerIds" | "enableSearchDistance" | "enableSearchDistanceOnLoad" | "geometries" | "mapView" | "searchDistanceEnabled" | "selectionSets" | "sketchLineSymbol" | "sketchPointSymbol" | "sketchPolygonSymbol">>, h.JSX.HTMLAttributes<RefineSelection> {
  onselectionLoadingChange?: EventHandler<RefineSelection["selectionLoadingChange"]>;
  onselectionSetsChanged?: EventHandler<RefineSelection["selectionSetsChanged"]>;
}

interface LuminaSelectionTool extends Partial<Pick<SelectionTool, "mapView" | "selectedLayerId" | "tool">>, h.JSX.HTMLAttributes<SelectionTool> {
  ondrawingComplete?: EventHandler<SelectionTool["drawingComplete"]>;
  onfeaturesSelected?: EventHandler<SelectionTool["featuresSelected"]>;
}

interface LuminaSolutionBuilderAssistant extends Partial<Pick<SolutionBuilderAssistant, "design" | "readOnlyNotice">>, h.JSX.HTMLAttributes<SolutionBuilderAssistant> {
  ondiscardBuilder?: EventHandler<SolutionBuilderAssistant["discardBuilder"]>;
}

interface LuminaSolutionConfigureTitles extends Partial<Pick<SolutionConfigureTitles, "card" | "open" | "solutionData" | "source" | "templateInfos">>, h.JSX.HTMLAttributes<SolutionConfigureTitles> {
  onsolutionConfigureTitlesBeforeClose?: EventHandler<SolutionConfigureTitles["solutionConfigureTitlesBeforeClose"]>;
  onsolutionItemsTitlesChanged?: EventHandler<SolutionConfigureTitles["solutionItemsTitlesChanged"]>;
}

interface LuminaSolutionDeleteDialog extends Required<Pick<SolutionDeleteDialog, "card">>, Partial<Pick<SolutionDeleteDialog, "open" | "source">>, h.JSX.HTMLAttributes<SolutionDeleteDialog> {
  onsolutionDeleted?: EventHandler<SolutionDeleteDialog["solutionDeleted"]>;
  onsolutionDeleteDialogBeforeClose?: EventHandler<SolutionDeleteDialog["solutionDeleteDialogBeforeClose"]>;
  onsolutionDeleteDialogOpen?: EventHandler<SolutionDeleteDialog["solutionDeleteDialogOpen"]>;
}

interface LuminaSolutionDeployDialog extends Partial<Pick<SolutionDeployDialog, "card" | "debugFailDeployment" | "design" | "open" | "userOptions">>, h.JSX.HTMLAttributes<SolutionDeployDialog> {
  ondeployCancelled?: EventHandler<SolutionDeployDialog["deployCancelled"]>;
  ondeployFailed?: EventHandler<SolutionDeployDialog["deployFailed"]>;
  ondeployProgressEnd?: EventHandler<SolutionDeployDialog["deployProgressEnd"]>;
  ondeployProgressStart?: EventHandler<SolutionDeployDialog["deployProgressStart"]>;
  ondeployProgressUpdated?: EventHandler<SolutionDeployDialog["deployProgressUpdated"]>;
}

interface LuminaSolutionDeployedCard extends Partial<Pick<SolutionDeployedCard, "card" | "deployedDate" | "description" | "diagramKey" | "heading" | "itemId" | "owner" | "templateInfos" | "thumbnail" | "updateAvailable">>, h.JSX.HTMLAttributes<SolutionDeployedCard> {
  ondeployedCardSelected?: EventHandler<SolutionDeployedCard["deployedCardSelected"]>;
}

interface LuminaSolutionDeployedCardPanel extends Partial<Pick<SolutionDeployedCardPanel, "card" | "cardRef" | "diagramKey" | "open" | "readOnlyNotice" | "templateInfos">>, h.JSX.HTMLAttributes<SolutionDeployedCardPanel> {
  onforceSelectTab?: EventHandler<SolutionDeployedCardPanel["forceSelectTab"]>;
  onnavTabSelected?: EventHandler<SolutionDeployedCardPanel["navTabSelected"]>;
  onsolutionConfigureDialogClose?: EventHandler<SolutionDeployedCardPanel["solutionConfigureDialogClose"]>;
  onsortTypeChanged?: EventHandler<SolutionDeployedCardPanel["sortTypeChanged"]>;
}

interface LuminaSolutionDeployingDialog extends Partial<Pick<SolutionDeployingDialog, "abortController" | "card" | "deploymentProgress" | "isWaitingForCard" | "open">>, h.JSX.HTMLAttributes<SolutionDeployingDialog> {
  ondeployingDialogOpened?: EventHandler<SolutionDeployingDialog["deployingDialogOpened"]>;
  ondeploymentProcessCancelled?: EventHandler<SolutionDeployingDialog["deploymentProcessCancelled"]>;
}

interface LuminaSolutionDetailsCard extends Partial<Pick<SolutionDetailsCard, "card" | "referrerSolutionId" | "referrerSolutionTitle" | "referrerSolutionVersion" | "source">>, h.JSX.HTMLAttributes<SolutionDetailsCard> {
  ondetailsCardSelected?: EventHandler<SolutionDetailsCard["detailsCardSelected"]>;
}

interface LuminaSolutionDetailsPanel extends Partial<Pick<SolutionDetailsPanel, "card" | "readOnlyNotice">>, h.JSX.HTMLAttributes<SolutionDetailsPanel> {
  onitemPropertiesFetched?: EventHandler<SolutionDetailsPanel["itemPropertiesFetched"]>;
  onsortTypeChanged?: EventHandler<SolutionDetailsPanel["sortTypeChanged"]>;
  ontemplatesFetched?: EventHandler<SolutionDetailsPanel["templatesFetched"]>;
  ontokenRefreshed?: EventHandler<SolutionDetailsPanel["tokenRefreshed"]>;
}

interface LuminaSolutionItemAccordion extends Partial<Pick<SolutionItemAccordion, "itemRelationshipDependencies" | "linkType" | "listSelectionMode" | "reuseWarning" | "templateInfos" | "typeKeywords" | "usageContext">>, h.JSX.HTMLAttributes<SolutionItemAccordion> {
  onsolutionItemHover?: EventHandler<SolutionItemAccordion["solutionItemHover"]>;
  onsolutionItemSelect?: EventHandler<SolutionItemAccordion["solutionItemSelect"]>;
  onsolutionTypeHover?: EventHandler<SolutionItemAccordion["solutionTypeHover"]>;
}

interface LuminaSolutionItemDiagram extends Partial<Pick<SolutionItemDiagram, "diagramKey" | "templateInfoGraph" | "typeKeywords">>, h.JSX.HTMLAttributes<SolutionItemDiagram> {
}

interface LuminaSolutionItemIcon extends Partial<Pick<SolutionItemIcon, "designType" | "isPortal" | "type" | "typeKeywords">>, h.JSX.HTMLAttributes<SolutionItemIcon> {
}

interface LuminaSolutionResourceCard extends Partial<Pick<SolutionResourceCard, "description" | "heading" | "headingEn" | "icon" | "meridianIcon" | "sectionHeadingEn" | "url">>, h.JSX.HTMLAttributes<SolutionResourceCard> {
}

interface LuminaSolutionSnapshotGallery extends Partial<Pick<SolutionSnapshotGallery, "card" | "itemProperties" | "open" | "screenshot">>, h.JSX.HTMLAttributes<SolutionSnapshotGallery> {
}

interface LuminaSolutionSocialShare extends Partial<Pick<SolutionSocialShare, "actionApperance" | "autoUpdateShareUrl" | "buttonAppearance" | "inlineSuccessPopoverPlacement" | "mode" | "popoverButtonIconScale" | "popoverPositioning" | "removePopoverOffset" | "scale" | "shareButtonKind" | "shareButtonScale" | "shareButtonText" | "shareButtonType" | "shareIconsLayout" | "shareText" | "shareUrl" | "shortenShareUrl" | "socialMedia" | "solutionId" | "solutionTitle" | "solutionVersion" | "successMessage">>, h.JSX.HTMLAttributes<SolutionSocialShare> {
}

interface LuminaSolutionUserAvatar extends Partial<Pick<SolutionUserAvatar, "fullname" | "lookupProfile" | "thumbnailUrl" | "username">>, h.JSX.HTMLAttributes<SolutionUserAvatar> {
}

interface LuminaSolutionsAllPanel extends Partial<Pick<SolutionsAllPanel, "sortType">>, h.JSX.HTMLAttributes<SolutionsAllPanel> {
  onallCardsFetched?: EventHandler<SolutionsAllPanel["allCardsFetched"]>;
  oncardsFetched?: EventHandler<SolutionsAllPanel["cardsFetched"]>;
  ondetailsCardSelected?: EventHandler<SolutionsAllPanel["detailsCardSelected"]>;
  onsearchTermSet?: EventHandler<SolutionsAllPanel["searchTermSet"]>;
  onsortTypeSet?: EventHandler<SolutionsAllPanel["sortTypeSet"]>;
}

interface LuminaSolutionsAllShell extends Partial<Pick<SolutionsAllShell, "solutionsCount">>, h.JSX.HTMLAttributes<SolutionsAllShell> {
  onfilterRemoved?: EventHandler<SolutionsAllShell["filterRemoved"]>;
}

interface LuminaSolutionsDeployApp extends Partial<Pick<SolutionsDeployApp, "appConfig" | "initTab" | "initTitleOrId" | "loadExampleBuilderData" | "sortType" | "useLocalAppConfig">>, h.JSX.HTMLAttributes<SolutionsDeployApp> {
  ondeployAppTabSelected?: EventHandler<SolutionsDeployApp["deployAppTabSelected"]>;
  ondeployedCardFetchFailed?: EventHandler<SolutionsDeployApp["deployedCardFetchFailed"]>;
  ondeployedCardSelected?: EventHandler<SolutionsDeployApp["deployedCardSelected"]>;
  ondetailsCardSelected?: EventHandler<SolutionsDeployApp["detailsCardSelected"]>;
  onmetaTagStringsReady?: EventHandler<SolutionsDeployApp["metaTagStringsReady"]>;
  onsessionRefreshed?: EventHandler<SolutionsDeployApp["sessionRefreshed"]>;
  ontabChanged?: EventHandler<SolutionsDeployApp["tabChanged"]>;
}

interface LuminaSolutionsDeployAppNav extends Partial<Pick<SolutionsDeployAppNav, "appConfig" | "assistantOpen" | "initTab">>, h.JSX.HTMLAttributes<SolutionsDeployAppNav> {
  onauthInit?: EventHandler<SolutionsDeployAppNav["authInit"]>;
  onnavTabSelected?: EventHandler<SolutionsDeployAppNav["navTabSelected"]>;
  ontabChanged?: EventHandler<SolutionsDeployAppNav["tabChanged"]>;
  ontokenRefreshed?: EventHandler<SolutionsDeployAppNav["tokenRefreshed"]>;
}

interface LuminaSolutionsDeployedList extends Partial<Pick<SolutionsDeployedList, "hasLinks" | "listTitle" | "referenceCards" | "results">>, h.JSX.HTMLAttributes<SolutionsDeployedList> {
  ondeployedCardSelected?: EventHandler<SolutionsDeployedList["deployedCardSelected"]>;
}

interface LuminaSolutionsDeployedPanel extends Partial<Pick<SolutionsDeployedPanel, "sortType">>, h.JSX.HTMLAttributes<SolutionsDeployedPanel> {
  ondeployedCardsFetched?: EventHandler<SolutionsDeployedPanel["deployedCardsFetched"]>;
  onsearchTermSet?: EventHandler<SolutionsDeployedPanel["searchTermSet"]>;
  onsortTypeSet?: EventHandler<SolutionsDeployedPanel["sortTypeSet"]>;
}

interface LuminaSolutionsDeployedShell extends Partial<Pick<SolutionsDeployedShell, "solutionsCount">>, h.JSX.HTMLAttributes<SolutionsDeployedShell> {
  onfilterRemoved?: EventHandler<SolutionsDeployedShell["filterRemoved"]>;
  ontokenRefreshed?: EventHandler<SolutionsDeployedShell["tokenRefreshed"]>;
}

interface LuminaSolutionsFilterPanel extends Partial<Pick<SolutionsFilterPanel, "hideIndustryFilter" | "showReset">>, h.JSX.HTMLAttributes<SolutionsFilterPanel> {
  onapplyFilter?: EventHandler<SolutionsFilterPanel["applyFilter"]>;
  ontoggleFilter?: EventHandler<SolutionsFilterPanel["toggleFilter"]>;
  onupdateUrlParams?: EventHandler<SolutionsFilterPanel["updateUrlParams"]>;
}

interface LuminaSolutionsResourcesSection extends Partial<Pick<SolutionsResourcesSection, "cards" | "heading" | "subheading">>, h.JSX.HTMLAttributes<SolutionsResourcesSection> {
}

interface LuminaSolutionsResourcesShell extends h.JSX.HTMLAttributes<SolutionsResourcesShell> {
  onsortTypeChanged?: EventHandler<SolutionsResourcesShell["sortTypeChanged"]>;
}

interface LuminaSolutionsSearchsortToolbar extends Partial<Pick<SolutionsSearchSortToolbar, "defaultSortType" | "isOrgSolutions" | "scope">>, h.JSX.HTMLAttributes<SolutionsSearchSortToolbar> {
  onsearchChanged?: EventHandler<SolutionsSearchSortToolbar["searchChanged"]>;
  onsortTypeChanged?: EventHandler<SolutionsSearchSortToolbar["sortTypeChanged"]>;
  ontoggleFilter?: EventHandler<SolutionsSearchSortToolbar["toggleFilter"]>;
  onupdateUrlParams?: EventHandler<SolutionsSearchSortToolbar["updateUrlParams"]>;
}

declare module "@arcgis/lumina" {
  export namespace h.JSX {
    interface IntrinsicElements {
      "arcgis-solutions-assistant": LuminaArcgisSolutionsAssistant;
      "buffer-tools": LuminaBufferTools;
      "card-manager": LuminaCardManager;
      "consent-manager": LuminaConsentManager;
      "create-feature": LuminaCreateFeature;
      "create-related-feature": LuminaCreateRelatedFeature;
      "crowdsource-manager": LuminaCrowdsourceManager;
      "crowdsource-reporter": LuminaCrowdsourceReporter;
      "deduct-calculator": LuminaDeductCalculator;
      "delete-button": LuminaDeleteButton;
      "delete-dialog": LuminaDeleteDialog;
      "edit-card": LuminaEditCard;
      "feature-details": LuminaFeatureDetails;
      "feature-list": LuminaFeatureList;
      "field-selection": LuminaFieldSelection;
      "info-card": LuminaInfoCard;
      "layer-list": LuminaLayerList;
      "layer-list-widget": LuminaLayerListWidget;
      "layer-table": LuminaLayerTable;
      "map-basemap-gallery": LuminaMapBasemapGallery;
      "map-card": LuminaMapCard;
      "map-draw-tools": LuminaMapDrawTools;
      "map-floor-filter": LuminaMapFloorFilter;
      "map-fullscreen": LuminaMapFullscreen;
      "map-layer-picker": LuminaMapLayerPicker;
      "map-legend": LuminaMapLegend;
      "map-picker": LuminaMapPicker;
      "map-search": LuminaMapSearch;
      "map-select-tools": LuminaMapSelectTools;
      "map-tools": LuminaMapTools;
      "pci-calculator": LuminaPciCalculator;
      "pdf-download": LuminaPdfDownload;
      "public-notification": LuminaPublicNotification;
      "refine-selection": LuminaRefineSelection;
      "selection-tool": LuminaSelectionTool;
      "solution-builder-assistant": LuminaSolutionBuilderAssistant;
      "solution-configure-titles": LuminaSolutionConfigureTitles;
      "solution-delete-dialog": LuminaSolutionDeleteDialog;
      "solution-deploy-dialog": LuminaSolutionDeployDialog;
      "solution-deployed-card": LuminaSolutionDeployedCard;
      "solution-deployed-card-panel": LuminaSolutionDeployedCardPanel;
      "solution-deploying-dialog": LuminaSolutionDeployingDialog;
      "solution-details-card": LuminaSolutionDetailsCard;
      "solution-details-panel": LuminaSolutionDetailsPanel;
      "solution-item-accordion": LuminaSolutionItemAccordion;
      "solution-item-diagram": LuminaSolutionItemDiagram;
      "solution-item-icon": LuminaSolutionItemIcon;
      "solution-resource-card": LuminaSolutionResourceCard;
      "solution-snapshot-gallery": LuminaSolutionSnapshotGallery;
      "solution-social-share": LuminaSolutionSocialShare;
      "solution-user-avatar": LuminaSolutionUserAvatar;
      "solutions-all-panel": LuminaSolutionsAllPanel;
      "solutions-all-shell": LuminaSolutionsAllShell;
      "solutions-deploy-app": LuminaSolutionsDeployApp;
      "solutions-deploy-app-nav": LuminaSolutionsDeployAppNav;
      "solutions-deployed-list": LuminaSolutionsDeployedList;
      "solutions-deployed-panel": LuminaSolutionsDeployedPanel;
      "solutions-deployed-shell": LuminaSolutionsDeployedShell;
      "solutions-filter-panel": LuminaSolutionsFilterPanel;
      "solutions-resources-section": LuminaSolutionsResourcesSection;
      "solutions-resources-shell": LuminaSolutionsResourcesShell;
      "solutions-searchsort-toolbar": LuminaSolutionsSearchsortToolbar;
    }
  }
}