import type { MapController, LayerDescriptor } from "@nika-js/onlymap"; import type { FoldSide, ManagedSlot } from "@nika-js/onlymap"; /** A managed slot (spec: "Widget Layout Manager"), a legacy corner alias, or the author-styled `manual` tier. */ export type WidgetPosition = ManagedSlot | "manual" | "top-left" | "top-right" | "bottom-left" | "bottom-right"; export interface OmMapContextValue { controller: MapController; layers: LayerRegistry; /** The pane portals into — absolutely positioned above the canvas, pointer-events: none. */ overlayPane: HTMLDivElement; /** Slot containers portals into (filled as OmMap's own DOM mounts). */ corners: Readonly>; /** Hide authored managed widgets without hiding mandated provider/license chrome. */ widgetsHidden: boolean; /** Responsive map-width state shared by every positioning shell. */ widgetsFolded: boolean; /** Per-side disclosure panels used as portal targets while folded. */ foldPanels: Readonly>; /** Registers whether a React widget currently needs a side drawer. */ registerFoldedWidget(side: FoldSide, token: string, present: boolean): void; } export declare const OmMapContext: import("react").Context; export declare function useOmMapContext(caller: string): OmMapContextValue; /** * Mount-ordered descriptor registry: one entry per , insertion * order = mount order = deck.gl z-order. Every change hands the full set to * MapController.setLayers, which microtask-coalesces commits — N layer * updates in one render pass cost one reconcile. */ export declare class LayerRegistry { private controller; private descriptors; constructor(controller: MapController); upsert(descriptor: LayerDescriptor): void; remove(id: string): void; }