interface AudioWorkletProcessor { readonly port: MessagePort; process( inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record ): boolean; } declare let AudioWorkletProcessor: { prototype: AudioWorkletProcessor; new (options?: AudioWorkletNodeOptions): AudioWorkletProcessor; }; declare function registerProcessor( name: string, processorCtor: (new ( options?: AudioWorkletNodeOptions ) => AudioWorkletProcessor) & { parameterDescriptors?: AudioParamDescriptor[]; } ): undefined; class AudioProcessor extends AudioWorkletProcessor { process (inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record) { console.log(inputs); console.log(outputs); console.log(parameters); return true } } registerProcessor('audio-processor', AudioProcessor)