import type { AdapterInstance, AdapterRendererProps, SafeAreaInsets, ShapeStyleDefaults } from "@trackunit/react-map-adapter-shared"; import { type ComponentType } from "react"; import type { MapAnnotationStore } from "../annotations/mapAnnotations"; import type { PanelStore } from "../panel/store/panels"; import { MapLoadingIndicatorStore } from "./loadingIndicator"; import type { ContainerRefHolder, MapComponentProps } from "./types"; type CreateMapComponentConfig = Readonly<{ adapter: AdapterInstance; Renderer: ComponentType; adapterName: string; containerRefHolder?: ContainerRefHolder; containerId?: string; annotationStore?: MapAnnotationStore; loadingIndicatorStore?: MapLoadingIndicatorStore; panelStore?: PanelStore; safeAreaInsets?: SafeAreaInsets | null; /** * Per-shape-type visual defaults injected into the adapter's layer port. * Defaults to `SHAPE_STYLE_DEFAULTS` from react-map. Override to customise * adapter stroke/fill fallbacks across all adapters. * * Note: only affects adapter-level rendering fallbacks. React-side decoration * geometry (e.g. multi-part "+" badge sizing in `useShapes`) continues to use * the built-in `SHAPE_STYLE_DEFAULTS`. */ shapeStyleDefaults?: ShapeStyleDefaults; }>; /** * Creates a named Map component for the given adapter. * * When a `containerRefHolder` is provided (from `useMap`), the component renders a * wrapper div that owns the container ref and applies ZStack grid classes * so children (e.g. Controls) can overlay the map. * The adapter/Renderer never receives container-related props. * * When no `containerRefHolder` is provided (from `usePreviewMap`), the component * still wraps the Renderer in a relative container and draws the readiness overlay on top (SAGA-374). * * @internal */ export declare const createMapComponent: ({ adapter, Renderer, adapterName, containerRefHolder, containerId, annotationStore, loadingIndicatorStore, panelStore, safeAreaInsets, shapeStyleDefaults, }: CreateMapComponentConfig) => ComponentType; export {};