import * as THREE from "three";
export declare const ARGlassMaterialFactory: {
    createSpatialUI: (options: any) => THREE.ShaderMaterial;
    createHolographicGlass: (options: any) => THREE.ShaderMaterial;
    createDataVisualization: (options: any) => THREE.ShaderMaterial;
};
export declare const ARGlassGeometryFactory: {
    createCurvedPanel: (width: number, height: number, depth: number) => THREE.PlaneGeometry;
    createPortalGeometry: (innerRadius: number, outerRadius: number) => THREE.RingGeometry;
    createParticleField: (count: number) => THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>;
};
export declare const ARGlassAnimations: {
    createFloatingAnimation: (object: THREE.Object3D, amplitude?: number, frequency?: number) => (time: number) => void;
    createRotationAnimation: (object: THREE.Object3D, axis: THREE.Vector3, speed?: number) => (time: number) => void;
    createScaleAnimation: (object: THREE.Object3D, minScale: number, maxScale: number, frequency?: number) => (time: number) => void;
};
export declare const ARGlassInteractions: {
    createHapticFeedback: (intensity?: number, duration?: number) => void;
    setupHandTracking: (objects: THREE.Object3D[], callback: (object: THREE.Object3D, hand: {
        isActive: boolean;
        position: THREE.Vector3;
        rotation: THREE.Quaternion;
    }) => void) => (handData: {
        left: {
            isActive: boolean;
            position: THREE.Vector3;
            rotation: THREE.Quaternion;
        };
        right: {
            isActive: boolean;
            position: THREE.Vector3;
            rotation: THREE.Quaternion;
        };
    }) => void;
};
export declare const ARGlassUtils: {
    createAdaptiveScaling: (minScale: number, maxScale: number) => (distance: number) => number;
    createDistanceBasedOpacity: (maxDistance?: number) => (distance: number) => number;
};
//# sourceMappingURL=ARGlassEffects.helpers.d.ts.map