import { MVTLayer, TileLayer, _WMSLayer as WMSLayer } from '@deck.gl/geo-layers'; import { GeoJsonLayer } from '@deck.gl/layers'; import { Layer, Viewport } from '@deck.gl/core'; import { RenderingLayer } from '../../../shared/models/models.layers'; /** * Represents the possible types of layer instances that can be managed. * This includes specific layer types from the `deck.gl` library. */ export type LayerInstance = TileLayer | GeoJsonLayer | WMSLayer | MVTLayer | Layer | null; /** * Props for the `LayerManager` component. * @property {RenderingLayer[]} layers - Array of layers to be rendered and managed. * @property {(id: string, instance: LayerInstance) => void} onLayerUpdate - Callback function to handle updates to layer instances. * @property {Viewport | null} viewport - Current DeckGL viewport used for rendering. * @property {React.ElementType | boolean} [CustomTooltip] - Optional custom tooltip React component; when false, default tooltips are used. */ interface LayerManagerProps { layers: RenderingLayer[]; onLayerUpdate: (id: string, instance: LayerInstance) => void; viewport: Viewport | null; CustomTooltip?: React.ElementType | boolean; } /** * Props for individual layer source components. * @property {RenderingLayer} layer - The configuration object for the layer. * @property {(id: string, instance: LayerInstance) => void} onLayerUpdate - Callback function to handle updates to the layer instance. * @property {Viewport | null} [viewport] - Current DeckGL viewport used for rendering. * @property {React.ElementType | boolean} [CustomTooltip] - Optional custom tooltip React component; when false, default tooltips are used. */ export interface LayerSourceProps { layer: RenderingLayer; onLayerUpdate: (id: string, instance: LayerInstance) => void; viewport?: Viewport | null; CustomTooltip?: React.ElementType | boolean; } /** * The `LayerManager` component is responsible for rendering and managing multiple layers. * It dynamically selects the appropriate layer source component based on the datasource labels. * * @param {LayerManagerProps} props - The props for the `LayerManager` component. * @returns {JSX.Element} A React fragment containing the rendered layer components. */ export declare const LayerManager: ({ layers, onLayerUpdate, viewport, CustomTooltip }: LayerManagerProps) => import("react/jsx-runtime").JSX.Element; export {};