export interface GuideRenderPoi { id: string name: string floorId: string primaryCategory: string primaryCategoryZh: string iconType: string positionGltf?: [number, number, number] } export interface GuideModelFloorAsset { floorId: string label: string order: number modelUrl: string } export interface GuideModelRenderPackage { overviewModelUrl: string floors: GuideModelFloorAsset[] } export interface GuideModelSource { loadPackage(): Promise loadFloorPois(floorId: string): Promise } export interface AutoSwitchConfig { enabled: boolean thresholdLowFactor: number thresholdHighFactor: number cooldownMs: number } export interface AutoSwitchEvent { from: 'overview' | 'floor' to: 'overview' | 'floor' trigger: 'zoom-in' | 'zoom-out' distance: number }