import { Note } from "./Note";
/**
 * A note head with shape and fill information belonging to a [[Note]].
 */
export declare class Notehead {
    /**
     * @param sourceNote
     * @param shapeTypeXml The shape type given from XML.
     *                     See https://usermanuals.musicxml.com/MusicXML/Content/ST-MusicXML-notehead-value.htm
     * @param filledXml The XML flag to fill the note shape. Can be undefined if not included in XML.
     *                  If undefined, the filled parameter will be calculated by note duration (d < half note => filled)
     */
    constructor(sourceNote: Note, shapeTypeXml: string, filledXml?: boolean);
    /** shape of the note head (normal, square, triangle, etc.) */
    private shape;
    private filled;
    /** the [[Note]] this NoteHead belongs to. */
    private sourceNote;
    /** Sets the note head's shape from XML parameters.
     * @param shapeTypeXml The XML shape.
     * @param filledXmlAttribute the filled parameter as given in XML.
     *                           Can be undefined if not given in XML or if it should be calculated from note duration.
     *                           If undefined, this.sourceNote should not be undefined.
     */
    setShapeFromXml(shapeTypeXml: string, filledXmlAttribute?: boolean): void;
    get SourceNote(): Note;
    get Shape(): NoteHeadShape;
    get Filled(): boolean;
    /** Converts xml attribute to NoteHeadShape.
     * Necessary because "circle-x" is not a valid enum member name.
     */
    static ShapeTypeXmlToShape(shapeTypeXml: string): NoteHeadShape;
}
/** shape of a note head, needs to be supported by MusicXML and Vexflow. */
export declare enum NoteHeadShape {
    CIRCLEX = 0,
    DIAMOND = 1,
    NORMAL = 2,
    NONE = 3,
    RECTANGLE = 4,
    SLASH = 5,
    SQUARE = 6,
    TRIANGLE = 7,
    TRIANGLE_INVERTED = 8,
    X = 9
}
