import React from "react";
export interface ARObject {
    id: string;
    name: string;
    modelUrl?: string;
    thumbnail?: string;
    scale: {
        x: number;
        y: number;
        z: number;
    };
    rotation: {
        x: number;
        y: number;
        z: number;
    };
    position: {
        x: number;
        y: number;
        z: number;
    };
    visible: boolean;
    opacity: number;
    material?: {
        color?: string;
        metalness?: number;
        roughness?: number;
        emissive?: string;
        texture?: string;
    };
    animation?: {
        type: "rotate" | "float" | "pulse" | "bounce";
        speed: number;
        enabled: boolean;
    };
    metadata?: Record<string, any>;
}
export interface ARMarker {
    id: string;
    type: "qr" | "image" | "nft" | "barcode";
    source: string;
    size?: number;
    confident?: number;
}
export interface ARCamera {
    position: {
        x: number;
        y: number;
        z: number;
    };
    target: {
        x: number;
        y: number;
        z: number;
    };
    fov: number;
    near: number;
    far: number;
}
export interface ARLighting {
    ambient: {
        color: string;
        intensity: number;
    };
    directional: {
        color: string;
        intensity: number;
        position: {
            x: number;
            y: number;
            z: number;
        };
        castShadow: boolean;
    };
    environment?: string;
}
export interface GlassARPreviewProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onError"> {
    /** AR objects to display */
    objects?: ARObject[];
    /** AR markers for tracking */
    markers?: ARMarker[];
    /** Camera configuration */
    camera?: ARCamera;
    /** Lighting setup */
    lighting?: ARLighting;
    /** Background mode */
    background?: "transparent" | "camera" | "environment" | "color";
    /** Background color if mode is 'color' */
    backgroundColor?: string;
    /** Environment map URL */
    environmentMap?: string;
    /** Whether to enable camera feed */
    enableCamera?: boolean;
    /** Whether to show debug info */
    debug?: boolean;
    /** AR session state */
    sessionActive?: boolean;
    /** WebXR support level */
    xrMode?: "immersive-ar" | "inline" | "viewer";
    /** Performance settings */
    quality?: "low" | "medium" | "high";
    /** Object interaction handlers */
    onObjectSelect?: (object: ARObject) => void;
    onObjectMove?: (objectId: string, position: {
        x: number;
        y: number;
        z: number;
    }) => void;
    onObjectRotate?: (objectId: string, rotation: {
        x: number;
        y: number;
        z: number;
    }) => void;
    onObjectScale?: (objectId: string, scale: {
        x: number;
        y: number;
        z: number;
    }) => void;
    /** Marker tracking handlers */
    onMarkerFound?: (marker: ARMarker) => void;
    onMarkerLost?: (marker: ARMarker) => void;
    /** Session handlers */
    onSessionStart?: () => void;
    onSessionEnd?: () => void;
    onError?: (error: Error) => void;
    /** Custom object renderer */
    renderObject?: (object: ARObject) => React.ReactNode;
    /** Loading component */
    loadingComponent?: React.ReactNode;
    /** Error component */
    errorComponent?: React.ReactNode;
    /** Controls overlay */
    controlsOverlay?: React.ReactNode;
    /** Respect motion preferences */
    respectMotionPreference?: boolean;
}
export declare const GlassARPreview: React.ForwardRefExoticComponent<GlassARPreviewProps & React.RefAttributes<HTMLDivElement>>;
export default GlassARPreview;
//# sourceMappingURL=GlassARPreview.d.ts.map