import type { Floor, MapView, Model } from '@mappedin/mappedin-js'; import { Coordinate } from '@mappedin/mappedin-js'; import type { BlueDot } from '../blue-dot'; import type { ParsedBlueDotPosition } from '../types'; import { ReadonlyDeep } from 'type-fest'; import { ModelUpdateOptions, ModelUpdateState } from './types'; export declare class ModelManager { #private; dot?: Model; accuracyRing?: Model; headingCone?: Model; constructor(mapView: MapView, BlueDot: BlueDot); add: (position: ParsedBlueDotPosition) => void; /** * Gets the current position of the BlueDot. * @returns The current coordinate or undefined if the dot doesn't exist */ getPosition(): ReadonlyDeep | undefined; /** * Updates floor state for altitude syncing. * @param floor - The current floor */ updateFloor(floor: Floor | undefined): void; /** * Updates all models with a single call. Consolidates position, accuracy, heading, * and status changes into one synchronized update. * @param state - The target state for the models * @param options - Animation options */ update: (state: ModelUpdateState, options?: ModelUpdateOptions) => void; remove: () => void; destroy: () => void; }