import { Note, INoteValue, NoteValue } from "./Note";
export declare type NoteNameBehavior = "always" | "onpress" | "onhighlight" | "never";
export declare type KeyPressStyle = "subtle" | "vivid";
export interface IInstrumentSettings {
    startOctave?: number;
    startNote?: Note;
    endOctave?: number;
    endNote?: Note;
    showNoteNames?: NoteNameBehavior;
    highlightedNotes?: Array<INoteValue | string>;
    highlightColor?: string;
    specialHighlightedNotes?: Array<INoteValue | string>;
    specialHighlightColor?: string;
    showOctaveNumbers?: boolean;
    keyPressStyle?: KeyPressStyle;
    vividKeyPressColor?: string;
}
export declare class InstrumentSettings {
    startOctave: number;
    startNote: Note;
    endOctave: number;
    endNote: Note;
    showNoteNames: NoteNameBehavior;
    highlightedNotes: NoteValue[];
    highlightColor: string;
    specialHighlightedNotes: NoteValue[];
    specialHighlightColor: string;
    showOctaveNumbers: boolean;
    keyPressStyle: KeyPressStyle;
    vividKeyPressColor: string;
    private _reloadNeeded;
    get reloadNeded(): boolean;
    constructor(settings?: IInstrumentSettings);
    applySettings(settings?: IInstrumentSettings): void;
}
