/** * @demo DEMO / SHOWCASE COMPONENT — XR/immersive demo with mock data. * * Glass360Viewer demonstrates a 360-degree panorama viewer on a glass surface. * Sample scenes/hotspots are illustrative; it is not wired to a real asset/CMS * pipeline. Provide real panorama assets and hotspot data before production use. */ import React from "react"; export interface Glass360ViewerMediaSource { type: "image" | "video"; url: string; projection?: "equirectangular" | "cubemap" | "cylindrical" | "dome"; title?: string; description?: string; thumbnail?: string; duration?: number; } export interface Glass360ViewerHotspot { id: string; x: number; y: number; title: string; description?: string; icon?: React.ReactNode; color?: string; onClick?: () => void; customContent?: React.ReactNode; } export interface Glass360ViewerControls { zoom?: boolean; pan?: boolean; autoRotate?: boolean; gyroscope?: boolean; fullscreen?: boolean; vr?: boolean; playback?: boolean; volume?: boolean; } export interface Glass360ViewerProps extends Omit, "onError"> { /** Media source */ source: Glass360ViewerMediaSource; /** Alternative sources for fallback */ sources?: Glass360ViewerMediaSource[]; /** Interactive hotspots */ hotspots?: Glass360ViewerHotspot[]; /** Controls configuration */ controls?: Glass360ViewerControls; /** Initial view settings */ initialView?: { yaw?: number; pitch?: number; fov?: number; }; /** Auto-rotate speed (degrees per second) */ autoRotateSpeed?: number; /** Whether auto-rotate is initially enabled */ autoRotateEnabled?: boolean; /** Maximum zoom level */ maxZoom?: number; /** Minimum zoom level */ minZoom?: number; /** Loading placeholder */ loadingComponent?: React.ReactNode; /** Error fallback */ errorComponent?: React.ReactNode; /** View change handler */ onViewChange?: (view: { yaw: number; pitch: number; fov: number; }) => void; /** Hotspot click handler */ onHotspotClick?: (hotspot: Glass360ViewerHotspot) => void; /** Media load handler */ onLoad?: () => void; /** Media error handler */ onError?: (error: Error) => void; /** Custom overlay */ overlay?: React.ReactNode; /** Whether to show debug info */ debug?: boolean; /** Viewer quality */ quality?: "low" | "medium" | "high" | "ultra"; /** Performance mode */ performanceMode?: "performance" | "quality"; /** Respect motion preferences */ respectMotionPreference?: boolean; } export declare const Glass360Viewer: React.ForwardRefExoticComponent>; export default Glass360Viewer; //# sourceMappingURL=Glass360Viewer.d.ts.map