interface HapticPattern { intensity: number; duration: number; delay?: number; pattern?: number[]; } export declare class GlassSoundDesign { private static instance; private audioContext; private sounds; private oscillators; private gainNodes; private enabled; private hapticEnabled; private readonly glassSounds; private readonly hapticPatterns; private constructor(); /** * Attach one-time listeners to create/resume AudioContext after a user gesture */ private setupGestureListeners; static getInstance(): GlassSoundDesign; /** * Get available glass sound types */ getGlassSoundTypes(): Array; /** * Get available haptic pattern types */ getHapticPatternTypes(): Array; /** * Initialize Web Audio API context */ private initAudioContext; /** * Allow callers to explicitly request audio enablement (e.g., from a button onClick) */ requestEnableAudio(): Promise; /** * Check if haptic feedback is supported */ private checkHapticSupport; /** * Play a synthetic glass sound */ playGlassSound(type: keyof typeof GlassSoundDesign.prototype.glassSounds, customConfig?: Partial): void; /** * Play a chord (multiple frequencies) */ playChord(frequencies: number[], duration?: number, volume?: number): void; /** * Play an arpeggio */ playArpeggio(frequencies: number[], noteDuration?: number, noteDelay?: number, volume?: number): void; /** * Create ambient glass atmosphere */ createAmbientGlass(config?: { baseFrequency?: number; modulationRate?: number; volume?: number; }): { id: string; stop: () => void; setVolume: (newVolume: number) => void; } | null; /** * Trigger haptic feedback */ triggerHaptic(pattern: keyof typeof GlassSoundDesign.prototype.hapticPatterns | HapticPattern): void; /** * Combined sound and haptic feedback */ playFeedback(type: "tap" | "hover" | "slide" | "success" | "error" | "notification"): void; /** * Create a glass resonance effect */ createResonance(frequency?: number, decay?: number): void; /** * Enable/disable sound */ setEnabled(enabled: boolean): void; /** * Enable/disable haptics */ setHapticEnabled(enabled: boolean): void; /** * Get audio context state */ getState(): { soundEnabled: boolean; hapticEnabled: boolean; audioContextState: AudioContextState | undefined; }; /** * Cleanup */ destroy(): void; } export declare const glassSoundDesign: GlassSoundDesign; export declare function useGlassSound(): { play: (type: string) => void; haptic: (pattern: string) => void; feedback: (type: Parameters[0]) => void; soundDesign: GlassSoundDesign; }; export {}; //# sourceMappingURL=soundDesign.d.ts.map