import { CSSProperties, ReactNode } from 'react'; import { SimulationSceneObject, StructureDiag, PositionTickDiag } from '../hooks/useSimulationScene'; export type ObjectInventoryKind = SimulationSceneObject["kind"]; export interface ObjectInventoryPanelProps { /** Objects to list. Typically `useSimulationScene().objects`. */ objects: SimulationSceneObject[]; /** Click handler — fires with the clicked object. Pure forward; the * panel does not navigate, focus, or fly anywhere itself. */ onSelect?: (object: SimulationSceneObject) => void; /** Currently selected object id (highlights the row). Pass `null` for none. */ selectedId?: string | null; /** Where to anchor the panel on its parent. Default: `top-left`. */ position?: "top-left" | "top-right" | "bottom-left" | "bottom-right"; /** Pixel offsets from the anchor. Defaults to (16, 56) so a top bar fits above. */ offset?: { x?: number; y?: number; }; /** Hide the panel without unmounting (preserves `selectedId` state). */ hidden?: boolean; /** Width in pixels. Default 330. */ width?: number; /** Maximum height (CSS value). Default `'50vh'`. */ maxHeight?: string | number; /** Allow the user to collapse / expand the panel. Default true. */ collapsible?: boolean; /** Initial collapsed state. Default false. */ defaultCollapsed?: boolean; /** Optional title override. Default: `"API Objects · N"`. */ title?: ReactNode; /** * Optional structure diagnostic block (raw keys + counts from * getSimulationStructure). Useful in dev / debug builds; omit in * production for a cleaner look. */ structureDiag?: StructureDiag | null; /** Optional position-tick diagnostic block. */ positionTickDiag?: PositionTickDiag | null; /** Custom labels per kind (defaults: "Spacecraft", "Ground Stations", "Celestial Bodies"). */ kindLabels?: Partial>; /** Inline style override on the outer container. */ style?: CSSProperties; } export declare const ObjectInventoryPanel: import('react').NamedExoticComponent; /** * Sensible default fly-to distance per object kind, for use with * ``'s imperative `focusOn(id, { zoom })` handle. * * spacecraft: 2 000 000 m (≈ 2 000 km — close orbital view) * groundStation: 1 500 000 m (≈ 1 500 km — high-altitude angled view) * celestialBody: 50 000 000 m (≈ 50 000 km — full-planet view) * * Override per call if the consumer wants tighter/looser framing. */ export declare function recommendedFlyDistance(kind: ObjectInventoryKind): number; export default ObjectInventoryPanel;