UNPKG

aura-glass

Version:

A comprehensive glassmorphism design system for React applications with 142+ production-ready components

130 lines 4.43 kB
/** * AuraGlass Spatial Audio System * 3D positioned glass sounds with Web Audio API and HRTF */ import React, { HTMLAttributes } from "react"; interface SpatialPosition { x: number; y: number; z: number; } interface AudioSource { id: string; position: SpatialPosition; volume: number; buffer: AudioBuffer | null; source: AudioBufferSourceNode | null; panner: PannerNode | null; gain: GainNode | null; isPlaying: boolean; loop: boolean; category: "ui" | "ambient" | "feedback" | "notification"; } interface SpatialAudioSettings { masterVolume: number; enableSpatial: boolean; enableHRTF: boolean; distanceModel: "linear" | "inverse" | "exponential"; maxDistance: number; rolloffFactor: number; doppler: boolean; } declare class SpatialAudioEngine { private context; private listener; private sources; private buffers; private settings; private masterGain; private isInitialized; constructor(settings?: Partial<SpatialAudioSettings>); initialize(): Promise<boolean>; getContext(): AudioContext | null; getSources(): Map<string, AudioSource>; private setupSpatialAudio; private preloadSounds; private createSyntheticGlassSound; createSource(id: string, soundKey: string, position: SpatialPosition): AudioSource | null; playSound(id: string, soundKey: string, position: SpatialPosition, options?: { loop?: boolean; volume?: number; delay?: number; }): void; stopSound(id: string): void; updateSourcePosition(id: string, position: SpatialPosition): void; updateListenerPosition(position: SpatialPosition): void; updateListenerOrientation(forward: SpatialPosition, up: SpatialPosition): void; setMasterVolume(volume: number): void; getMasterVolume(): number; getActiveSources(): AudioSource[]; cleanup(): void; } type GlassSpatialAudioConfig = { settings?: Partial<SpatialAudioSettings>; autoInitialize?: boolean; }; interface GlassSpatialAudioProviderProps extends GlassSpatialAudioConfig { children: React.ReactNode; } export declare function GlassSpatialAudioProvider({ children, settings, autoInitialize, }: GlassSpatialAudioProviderProps): import("react/jsx-runtime").JSX.Element; export interface GlassSpatialAudioProps extends GlassSpatialAudioConfig, HTMLAttributes<HTMLDivElement> { } export declare const GlassSpatialAudio: React.FC<GlassSpatialAudioProps>; export declare function useSpatialAudio(): { engine: SpatialAudioEngine | null; isInitialized: boolean; masterVolume: number; playGlassSound: (soundKey: string, position?: SpatialPosition, options?: any) => string; stopGlassSound: (id: string) => void; setMasterVolume: (volume: number) => void; }; export declare function GlassAudioReactive({ children, className, soundKey, position, reactToVolume, reactToFrequency, intensityMultiplier, }: { children: React.ReactNode; className?: string; soundKey?: string; position?: SpatialPosition; reactToVolume?: boolean; reactToFrequency?: boolean; intensityMultiplier?: number; }): import("react/jsx-runtime").JSX.Element; export declare function GlassSpatialVisualizer({ className, show, }: { className?: string; show?: boolean; }): import("react/jsx-runtime").JSX.Element | null; export declare function useGlassSound(): { playTap: (element?: HTMLElement) => string; playHover: (element?: HTMLElement) => string; playSlide: (element?: HTMLElement) => string; playBreak: (element?: HTMLElement) => string; playNotification: (element?: HTMLElement) => string; stopSound: (id: string) => void; }; export declare const spatialAudioPresets: { minimal: { enableSpatial: boolean; masterVolume: number; enableHRTF: boolean; }; standard: { enableSpatial: boolean; masterVolume: number; enableHRTF: boolean; distanceModel: "inverse"; }; immersive: { enableSpatial: boolean; masterVolume: number; enableHRTF: boolean; distanceModel: "exponential"; doppler: boolean; }; gaming: { enableSpatial: boolean; masterVolume: number; enableHRTF: boolean; distanceModel: "linear"; rolloffFactor: number; }; }; export {}; //# sourceMappingURL=GlassSpatialAudio.d.ts.map