import { CSSProperties } from 'react'; import { LayerDef } from '../types'; /** Render-flag layers — passed straight through to ``. */ export interface RenderLayers { labels?: boolean; coverage?: boolean; orbits?: boolean; } /** Object-group visibility — passed straight through to ``. */ export interface GroupVisibility { spacecraft?: boolean; groundStations?: boolean; celestialBodies?: boolean; } /** Counts shown in the group toggles ("Spacecraft (5)"). All optional. */ export interface GroupCounts { spacecraft?: number; groundStations?: number; celestialBodies?: number; } export interface LayerControlPanelProps { /** Current render-flag state. Each key defaults to: orbits=on, labels=off, coverage=off. */ layers?: RenderLayers; /** Called with the next render-flag state when any toggle is clicked. */ onLayersChange?: (next: RenderLayers) => void; /** Current group-visibility state. Each key defaults to true (visible). */ visibility?: GroupVisibility; /** Called with the next visibility state when any toggle is clicked. */ onVisibilityChange?: (next: GroupVisibility) => void; /** Counts to render in group toggle labels (e.g. "Spacecraft (5)"). */ groupCounts?: GroupCounts; /** App-defined layer toggles. The panel only renders the toggle UI. */ customLayers?: LayerDef[]; /** Current state of each custom layer (id → on/off). */ customLayerState?: Record; /** Fires when a custom layer is toggled. The consumer renders the overlay itself. */ onCustomLayerChange?: (id: string, enabled: boolean) => void; position?: "top-left" | "top-right" | "bottom-left" | "bottom-right"; offset?: { x?: number; y?: number; }; hidden?: boolean; style?: CSSProperties; /** Hide the render-flags section (`true` to suppress). */ hideRenderFlags?: boolean; /** Hide the object-group section. */ hideGroups?: boolean; /** Hide the custom-layers section even if `customLayers` is non-empty. */ hideCustomLayers?: boolean; } export declare const LayerControlPanel: import('react').NamedExoticComponent; export default LayerControlPanel;