aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
130 lines • 4.43 kB
TypeScript
/**
* 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