import { Param, ToneAudioNode, Unit, Volume } from 'tone'; declare type ToneAudioNodeOptions = import('tone/build/esm/core/context/ToneAudioNode').ToneAudioNodeOptions; export interface PianoComponentOptions extends ToneAudioNodeOptions { volume: Unit.Decibels; enabled: boolean; samples: string; } export interface UrlsMap { [note: string]: string; } /** * Base class for the other components */ export declare abstract class PianoComponent extends ToneAudioNode { readonly name = "PianoComponent"; readonly input: any; readonly output: Volume; /** * If the component is enabled or not */ protected _enabled: boolean; /** * The volume output of the component */ readonly volume: Param<"decibels">; /** * Boolean indication of if the component is loaded or not */ private _loaded; /** * The directory to load the Salamander samples out of */ readonly samples: string; constructor(options: PianoComponentOptions); /** * Load the component internally */ protected abstract _internalLoad(): Promise; /** * If the samples are loaded or not */ get loaded(): boolean; /** * Load the samples */ load(): Promise; } export {};