import type LinkChartView from "@arcgis/core/views/LinkChartView"; import type MapView from "@arcgis/core/views/MapView"; import type SceneView from "@arcgis/core/views/SceneView"; import type { WidgetProperties } from "@arcgis/core/widgets/Widget"; import type Widget from "@arcgis/core/widgets/Widget"; import type { ComponentType, HTMLAttributes } from "react"; import type { LayoutElementProperties } from "../components"; import type { MapModel } from "../mapping/MapModel"; import type { ComponentModelBase } from "../models"; import type { SxProps, Theme } from "../ui"; /** * Injects or updates the Esri CSS stylesheet based on the specified theme. * * @param theme The theme to apply ("dark" or "light"). */ export declare function injectOrUpdateCssIfNeeded(theme?: string): Promise; /** * Interface for Map Widget Container Properties. */ export interface MapWidgetContainerProperties { /** * The tab index for the map widget container. */ tabIndex?: number; } /** * This function creates a VertiGIS Studio Web layout component. The resulting * component can be placed anywhere in the layout. * * @param widgetType The Esri map widget to be created. * @param stretch Indicates whether the container should be 'stretchy' if * required. * @param useEsriStyling Indicates whether Esri CSS should be applied to the * app. */ export declare function createEsriMapWidget(widgetType: MapWidgetConstructor, stretch?: boolean, useEsriStyling?: boolean): ComponentType>; /** * Type representing a MapView or SceneView. */ export type MapOrSceneView = MapView | SceneView; /** * Type for a generic Esri Map Widget. */ export interface MapWidget extends Widget { /** * The map or scene view to be associated with this map widget. */ view: MapOrSceneView | LinkChartView; } /** * Type for an Esri Map Widget's constructor. */ export type MapWidgetConstructor = new (props: WidgetProperties & { view: MapOrSceneView; container: HTMLElement | string; }) => W; /** * Type for a Component model with a Map model. */ export type ModelWithMap = ComponentModelBase & { map: MapModel; }; /** * Type for an Esri Map Widget's props. */ export interface MapWidgetProps extends LayoutElementProperties { /** * Model for the Esri map widget. */ model: M; /** * Props that will be applied to the container div hosting the Esri widget. */ ContainerProps?: HTMLAttributes; /** * Handler for when the Esri map widget is created. */ onWidgetCreated?: (widget: W) => void; /** * Handler for when the Esri map widget is destroyed. */ onWidgetDestroyed?: () => void; /** * Additional styling and/or style overrides. */ sx?: SxProps; }