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<React.HTMLAttributes<HTMLDivElement>, "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<Glass360ViewerProps & React.RefAttributes<HTMLDivElement>>;
export default Glass360Viewer;
//# sourceMappingURL=Glass360Viewer.d.ts.map