import React from 'react'; import { MidiNote } from 'types/midi-notes'; declare type NoteType = { name: string; velocity?: number; duration?: number | string; /** Use unique key to differentiate from same notes, otherwise it won't play */ key?: string | number; }; export declare type InstrumentType = 'amSynth' | 'duoSynth' | 'fmSynth' | 'membraneSynth' | 'metalSynth' | 'monoSynth' | 'noiseSynth' | 'pluckSynth' | 'synth' | 'sampler'; export interface InstrumentProps { type: InstrumentType; notes?: NoteType[]; /** Should deprecate */ options?: any; polyphony?: number; oscillator?: { type: 'triangle' | 'sine' | 'square'; }; envelope?: { attack?: number; decay?: number; sustain?: number; release?: number; }; samples?: { [key in MidiNote]?: string; }; mute?: boolean; solo?: boolean; /** TODO: Type properly and consider loading status */ onLoad?: (buffers: any[]) => void; } declare const Instrument: React.FC; export default Instrument;