/// <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 { HTMLAttributes } from "preact";
import type { EventHandler } from "@arcgis/lumina";

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

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

interface PreactCardManager extends Partial<Pick<CardManager, "allowedPasteLayerIds" | "createBtnLabel" | "customInfoText" | "enableCreateFeatures" | "enableEditGeometry" | "enableSnapping" | "isMobile" | "layerOrTable" | "mapComponentId" | "mapView" | "pasteEnabled" | "selectedFeaturesIds" | "selectingFeatureFromMap" | "showCopyPasteActions" | "showSketchWidgets" | "zoomAndScrollToSelected">>, 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 PreactConsentManager extends Required<Pick<ConsentManager, "firstUseVar">>, Partial<Pick<ConsentManager, "amazonAppId" | "amazonAppName" | "amazonUserPoolID" | "amazonVersion" | "measurementIds" | "portal">>, HTMLAttributes<ConsentManager> {
  onconsentGranted?: EventHandler<ConsentManager["consentGranted"]>;
}

interface PreactCreateFeature 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">>, 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 PreactCreateRelatedFeature extends Partial<Pick<CreateRelatedFeature, "customizeSubmit" | "enableSnapping" | "mapView" | "selectedFeature" | "showGuidingMsg" | "table">>, HTMLAttributes<CreateRelatedFeature> {
  onfail?: EventHandler<CreateRelatedFeature["fail"]>;
  onformReady?: EventHandler<CreateRelatedFeature["formReady"]>;
  onisActionPending?: EventHandler<CreateRelatedFeature["isActionPending"]>;
  onsuccess?: EventHandler<CreateRelatedFeature["success"]>;
}

interface PreactCrowdsourceManager 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">>, HTMLAttributes<CrowdsourceManager> {
  onshowCoverPage?: EventHandler<CrowdsourceManager["showCoverPage"]>;
  onshowIntroductionWindow?: EventHandler<CrowdsourceManager["showIntroductionWindow"]>;
}

interface PreactCrowdsourceReporter 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">>, HTMLAttributes<CrowdsourceReporter> {
  ontogglePanel?: EventHandler<CrowdsourceReporter["togglePanel"]>;
}

interface PreactDeductCalculator extends HTMLAttributes<DeductCalculator> {
  ondeductValueComplete?: EventHandler<DeductCalculator["deductValueComplete"]>;
}

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

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

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

interface PreactFeatureDetails extends Partial<Pick<FeatureDetails, "enableSnapping" | "graphics" | "layerItemsHash" | "mapView" | "reportingOptions" | "showFullCommentTitle" | "showUserImageInCommentsList">>, 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 PreactFeatureList extends Partial<Pick<FeatureList, "applyLayerViewFilter" | "filterByMapExtent" | "highlightOnHover" | "highlightOnMap" | "mapView" | "noFeaturesFoundMsg" | "pageSize" | "reportingOptions" | "selectedLayerId" | "showErrorWhenNoFeatures" | "showFeatureSymbol" | "showFullTitle" | "showInitialLoading" | "showUserImageInList" | "sortingInfo" | "textSize" | "whereClause">>, HTMLAttributes<FeatureList> {
  onfeatureClick?: EventHandler<FeatureList["featureClick"]>;
  onfeatureSelect?: EventHandler<FeatureList["featureSelect"]>;
}

interface PreactFieldSelection extends Partial<Pick<FieldSelection, "configExtraFields" | "layer" | "mapView" | "table" | "tableRef">>, HTMLAttributes<FieldSelection> {
}

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

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

interface PreactLayerListWidget extends Partial<Pick<LayerListWidget, "layerListRef" | "mapView" | "visibilityIcon">>, HTMLAttributes<LayerListWidget> {
}

interface PreactLayerTable 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">>, 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 PreactMapBasemapGallery extends Partial<Pick<MapBasemapGallery, "basemapConfig" | "basemapGalleryRef" | "mapView">>, HTMLAttributes<MapBasemapGallery> {
}

interface PreactMapCard 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">>, 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 PreactMapDrawTools extends Partial<Pick<MapDrawTools, "active" | "drawMode" | "editGraphicsEnabled" | "graphics" | "mapView" | "pointSymbol" | "polygonSymbol" | "polylineSymbol" | "redoEnabled" | "undoEnabled">>, HTMLAttributes<MapDrawTools> {
  ondrawRedo?: EventHandler<MapDrawTools["drawRedo"]>;
  ondrawUndo?: EventHandler<MapDrawTools["drawUndo"]>;
  onselectionLoadingChange?: EventHandler<MapDrawTools["selectionLoadingChange"]>;
  onsketchGraphicsChange?: EventHandler<MapDrawTools["sketchGraphicsChange"]>;
}

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

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

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

interface PreactMapLegend extends Partial<Pick<MapLegend, "legendRef" | "mapView">>, HTMLAttributes<MapLegend> {
}

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

interface PreactMapSearch extends Partial<Pick<MapSearch, "mapView" | "popupEnabled" | "resultGraphicEnabled" | "searchComponent" | "searchConfiguration" | "searchTerm">>, HTMLAttributes<MapSearch> {
}

interface PreactMapSelectTools 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">>, HTMLAttributes<MapSelectTools> {
  onselectionSetChange?: EventHandler<MapSelectTools["selectionSetChange"]>;
}

interface PreactMapTools 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">>, HTMLAttributes<MapTools> {
  onclearSelection?: EventHandler<MapTools["clearSelection"]>;
}

interface PreactPciCalculator extends HTMLAttributes<PciCalculator> {
}

interface PreactPdfDownload extends Partial<Pick<PdfDownload, "defaultNumLabelsPerPage" | "disabled">>, HTMLAttributes<PdfDownload> {
}

interface PreactPublicNotification 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">>, HTMLAttributes<PublicNotification> {
  onsearchConfigurationChange?: EventHandler<PublicNotification["searchConfigurationChange"]>;
}

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

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

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

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

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

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

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

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

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

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

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

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

interface PreactSolutionItemDiagram extends Partial<Pick<SolutionItemDiagram, "diagramKey" | "templateInfoGraph" | "typeKeywords">>, HTMLAttributes<SolutionItemDiagram> {
}

interface PreactSolutionItemIcon extends Partial<Pick<SolutionItemIcon, "designType" | "isPortal" | "type" | "typeKeywords">>, HTMLAttributes<SolutionItemIcon> {
}

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

interface PreactSolutionSnapshotGallery extends Partial<Pick<SolutionSnapshotGallery, "card" | "itemProperties" | "open" | "screenshot">>, HTMLAttributes<SolutionSnapshotGallery> {
}

interface PreactSolutionSocialShare 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">>, HTMLAttributes<SolutionSocialShare> {
}

interface PreactSolutionUserAvatar extends Partial<Pick<SolutionUserAvatar, "fullname" | "lookupProfile" | "thumbnailUrl" | "username">>, HTMLAttributes<SolutionUserAvatar> {
}

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

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

interface PreactSolutionsDeployApp extends Partial<Pick<SolutionsDeployApp, "appConfig" | "initTab" | "initTitleOrId" | "loadExampleBuilderData" | "sortType" | "useLocalAppConfig">>, 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 PreactSolutionsDeployAppNav extends Partial<Pick<SolutionsDeployAppNav, "appConfig" | "assistantOpen" | "initTab">>, HTMLAttributes<SolutionsDeployAppNav> {
  onauthInit?: EventHandler<SolutionsDeployAppNav["authInit"]>;
  onnavTabSelected?: EventHandler<SolutionsDeployAppNav["navTabSelected"]>;
  ontabChanged?: EventHandler<SolutionsDeployAppNav["tabChanged"]>;
  ontokenRefreshed?: EventHandler<SolutionsDeployAppNav["tokenRefreshed"]>;
}

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

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

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

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

interface PreactSolutionsResourcesSection extends Partial<Pick<SolutionsResourcesSection, "cards" | "heading" | "subheading">>, HTMLAttributes<SolutionsResourcesSection> {
}

interface PreactSolutionsResourcesShell extends HTMLAttributes<SolutionsResourcesShell> {
  onsortTypeChanged?: EventHandler<SolutionsResourcesShell["sortTypeChanged"]>;
}

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

declare module 'preact' {
  namespace createElement.JSX {
    interface IntrinsicElements {
      "arcgis-solutions-assistant": PreactArcgisSolutionsAssistant;
      "buffer-tools": PreactBufferTools;
      "card-manager": PreactCardManager;
      "consent-manager": PreactConsentManager;
      "create-feature": PreactCreateFeature;
      "create-related-feature": PreactCreateRelatedFeature;
      "crowdsource-manager": PreactCrowdsourceManager;
      "crowdsource-reporter": PreactCrowdsourceReporter;
      "deduct-calculator": PreactDeductCalculator;
      "delete-button": PreactDeleteButton;
      "delete-dialog": PreactDeleteDialog;
      "edit-card": PreactEditCard;
      "feature-details": PreactFeatureDetails;
      "feature-list": PreactFeatureList;
      "field-selection": PreactFieldSelection;
      "info-card": PreactInfoCard;
      "layer-list": PreactLayerList;
      "layer-list-widget": PreactLayerListWidget;
      "layer-table": PreactLayerTable;
      "map-basemap-gallery": PreactMapBasemapGallery;
      "map-card": PreactMapCard;
      "map-draw-tools": PreactMapDrawTools;
      "map-floor-filter": PreactMapFloorFilter;
      "map-fullscreen": PreactMapFullscreen;
      "map-layer-picker": PreactMapLayerPicker;
      "map-legend": PreactMapLegend;
      "map-picker": PreactMapPicker;
      "map-search": PreactMapSearch;
      "map-select-tools": PreactMapSelectTools;
      "map-tools": PreactMapTools;
      "pci-calculator": PreactPciCalculator;
      "pdf-download": PreactPdfDownload;
      "public-notification": PreactPublicNotification;
      "refine-selection": PreactRefineSelection;
      "selection-tool": PreactSelectionTool;
      "solution-builder-assistant": PreactSolutionBuilderAssistant;
      "solution-configure-titles": PreactSolutionConfigureTitles;
      "solution-delete-dialog": PreactSolutionDeleteDialog;
      "solution-deploy-dialog": PreactSolutionDeployDialog;
      "solution-deployed-card": PreactSolutionDeployedCard;
      "solution-deployed-card-panel": PreactSolutionDeployedCardPanel;
      "solution-deploying-dialog": PreactSolutionDeployingDialog;
      "solution-details-card": PreactSolutionDetailsCard;
      "solution-details-panel": PreactSolutionDetailsPanel;
      "solution-item-accordion": PreactSolutionItemAccordion;
      "solution-item-diagram": PreactSolutionItemDiagram;
      "solution-item-icon": PreactSolutionItemIcon;
      "solution-resource-card": PreactSolutionResourceCard;
      "solution-snapshot-gallery": PreactSolutionSnapshotGallery;
      "solution-social-share": PreactSolutionSocialShare;
      "solution-user-avatar": PreactSolutionUserAvatar;
      "solutions-all-panel": PreactSolutionsAllPanel;
      "solutions-all-shell": PreactSolutionsAllShell;
      "solutions-deploy-app": PreactSolutionsDeployApp;
      "solutions-deploy-app-nav": PreactSolutionsDeployAppNav;
      "solutions-deployed-list": PreactSolutionsDeployedList;
      "solutions-deployed-panel": PreactSolutionsDeployedPanel;
      "solutions-deployed-shell": PreactSolutionsDeployedShell;
      "solutions-filter-panel": PreactSolutionsFilterPanel;
      "solutions-resources-section": PreactSolutionsResourcesSection;
      "solutions-resources-shell": PreactSolutionsResourcesShell;
      "solutions-searchsort-toolbar": PreactSolutionsSearchsortToolbar;
    }
  }
  namespace h.JSX {
    interface IntrinsicElements {
      "arcgis-solutions-assistant": PreactArcgisSolutionsAssistant;
      "buffer-tools": PreactBufferTools;
      "card-manager": PreactCardManager;
      "consent-manager": PreactConsentManager;
      "create-feature": PreactCreateFeature;
      "create-related-feature": PreactCreateRelatedFeature;
      "crowdsource-manager": PreactCrowdsourceManager;
      "crowdsource-reporter": PreactCrowdsourceReporter;
      "deduct-calculator": PreactDeductCalculator;
      "delete-button": PreactDeleteButton;
      "delete-dialog": PreactDeleteDialog;
      "edit-card": PreactEditCard;
      "feature-details": PreactFeatureDetails;
      "feature-list": PreactFeatureList;
      "field-selection": PreactFieldSelection;
      "info-card": PreactInfoCard;
      "layer-list": PreactLayerList;
      "layer-list-widget": PreactLayerListWidget;
      "layer-table": PreactLayerTable;
      "map-basemap-gallery": PreactMapBasemapGallery;
      "map-card": PreactMapCard;
      "map-draw-tools": PreactMapDrawTools;
      "map-floor-filter": PreactMapFloorFilter;
      "map-fullscreen": PreactMapFullscreen;
      "map-layer-picker": PreactMapLayerPicker;
      "map-legend": PreactMapLegend;
      "map-picker": PreactMapPicker;
      "map-search": PreactMapSearch;
      "map-select-tools": PreactMapSelectTools;
      "map-tools": PreactMapTools;
      "pci-calculator": PreactPciCalculator;
      "pdf-download": PreactPdfDownload;
      "public-notification": PreactPublicNotification;
      "refine-selection": PreactRefineSelection;
      "selection-tool": PreactSelectionTool;
      "solution-builder-assistant": PreactSolutionBuilderAssistant;
      "solution-configure-titles": PreactSolutionConfigureTitles;
      "solution-delete-dialog": PreactSolutionDeleteDialog;
      "solution-deploy-dialog": PreactSolutionDeployDialog;
      "solution-deployed-card": PreactSolutionDeployedCard;
      "solution-deployed-card-panel": PreactSolutionDeployedCardPanel;
      "solution-deploying-dialog": PreactSolutionDeployingDialog;
      "solution-details-card": PreactSolutionDetailsCard;
      "solution-details-panel": PreactSolutionDetailsPanel;
      "solution-item-accordion": PreactSolutionItemAccordion;
      "solution-item-diagram": PreactSolutionItemDiagram;
      "solution-item-icon": PreactSolutionItemIcon;
      "solution-resource-card": PreactSolutionResourceCard;
      "solution-snapshot-gallery": PreactSolutionSnapshotGallery;
      "solution-social-share": PreactSolutionSocialShare;
      "solution-user-avatar": PreactSolutionUserAvatar;
      "solutions-all-panel": PreactSolutionsAllPanel;
      "solutions-all-shell": PreactSolutionsAllShell;
      "solutions-deploy-app": PreactSolutionsDeployApp;
      "solutions-deploy-app-nav": PreactSolutionsDeployAppNav;
      "solutions-deployed-list": PreactSolutionsDeployedList;
      "solutions-deployed-panel": PreactSolutionsDeployedPanel;
      "solutions-deployed-shell": PreactSolutionsDeployedShell;
      "solutions-filter-panel": PreactSolutionsFilterPanel;
      "solutions-resources-section": PreactSolutionsResourcesSection;
      "solutions-resources-shell": PreactSolutionsResourcesShell;
      "solutions-searchsort-toolbar": PreactSolutionsSearchsortToolbar;
    }
  }
}