/** * SpessaSynthWrapper - Wrapper for spessasynth_lib WorkletSynthesizer */ export declare class SpessaSynthWrapper { audioContext: AudioContext; synthesizer: any; sequencer: any | null; soundBankLoaded: boolean; soundBankName: string; isReady: boolean; initialized: boolean; processorUrl: string | null; masterGain: GainNode | null; volume: number; private _volumeWarningShown; private _controlChangeWarningShown; private _autoLoadAttempted; private visibilityManager; constructor(audioContext: AudioContext); /** * Enable smooth tab switching to prevent audio stuttering */ private enableSmoothTabSwitching; /** * Get sequencer for timing synchronization * In spessasynth_lib, the synthesizer itself can act as a sequencer */ getSequencer(): any | null; initialize(processorUrl: string): Promise; /** * Auto-load soundfont from a URL/path * This is automatically called after initialize() if env config enables it */ autoLoadSoundFont(soundFontPath: string, bankName?: string): Promise; loadSoundFont(soundFontBuffer: ArrayBuffer, bankName?: string): Promise; noteOn(channel: number, note: number, velocity: number): void; noteOff(channel: number, note: number): void; programChange(channel: number, program: number): void; setChannelVolume(channel: number, volume: number): void; setVolume(volume: number): void; resume(): Promise; }