import { IInstrumentSettings } from './InstrumentSettings';
import { INoteValue } from './Note';
import { KeyEventHandler } from './PianoElement';
export declare class Instrument {
    private settings;
    private container;
    private img?;
    private keybed?;
    private keyPressEventHandlers;
    private keyReleaseEventHandlers;
    constructor(container: HTMLElement, settings?: IInstrumentSettings);
    create(): void;
    destroy(): void;
    keyDown(note: INoteValue | string): void;
    keyUp(note: INoteValue | string): void;
    addKeyMouseDownListener(handler: KeyEventHandler): void;
    addKeyMouseUpListener(handler: KeyEventHandler): void;
    removeKeyMouseDownListener(handler?: KeyEventHandler): void;
    removeKeyMouseUpListener(handler?: KeyEventHandler): void;
    reload(): void;
    applySettings(settings: IInstrumentSettings): void;
    private resizeCounter;
    private handleResize;
    private layout;
    private handleMouseKeyDown;
    private handleMouseKeyUp;
    rasterize(done: (dataUrl: string) => void, signature?: string): void;
}
