/**
 * this node does not change its input, but displays a piano 🎹 to play the instrument (such as a synthetizer) from the input, if there is one.
 *
 *
 */
import { TypedAudioNode } from './_Base';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { AudioBuilder } from '../../../core/audio/AudioBuilder';
declare class PlayInstrumentAudioParamsConfig extends NodeParamsConfig {
    /** @param note */
    note: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
    /** @param duration */
    duration: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.FLOAT>;
    /** @param play the audio */
    /** @param stop the audio */
    showNotes: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    showKeys: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    startOctave: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    endOctave: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    updateNoteFromInstrument: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
}
export declare class PlayInstrumentAudioNode extends TypedAudioNode<PlayInstrumentAudioParamsConfig> {
    paramsConfig: PlayInstrumentAudioParamsConfig;
    static type(): string;
    initializeNode(): void;
    cook(inputContents: AudioBuilder[]): void;
    play(): Promise<void>;
    private _getInstrument;
}
export {};
