import * as TSU from "@panyam/tsutils";
import { Note } from "../core";
import { BeatView } from "../beatview";
import { Embelishment } from "../shapes";
import { LeafAtomView } from "./atomviews";
import { JaaruGamaka } from "./gamakas";
export declare abstract class LeafAtomViewEmbelishment extends Embelishment {
    readonly atomView: LeafAtomView;
    constructor(atomView: LeafAtomView);
}
export declare class OctaveIndicator extends LeafAtomViewEmbelishment {
    readonly noteView: LeafAtomView;
    readonly note: Note;
    dotRadius: number;
    dotSpacing: number;
    dotsElem: SVGGElement;
    constructor(noteView: LeafAtomView, note: Note);
    protected refreshBBox(): TSU.Geom.Rect;
    protected refreshMinSize(): TSU.Geom.Size;
    protected updateBounds(x: null | number, y: null | number, _w: null | number, _h: null | number): [number | null, number | null, number | null, number | null];
    refreshLayout(): void;
}
export declare class LabelEmbelishment extends LeafAtomViewEmbelishment {
    readonly label: string;
    readonly atomView: LeafAtomView;
    labelElem: SVGTextElement;
    constructor(label: string, atomView: LeafAtomView);
    protected refreshBBox(): TSU.Geom.Rect;
    protected refreshMinSize(): TSU.Geom.Size;
    protected updateBounds(x: null | number, y: null | number, w: null | number, h: null | number): [number | null, number | null, number | null, number | null];
    refreshLayout(): void;
}
export declare class BeatStartLines extends Embelishment {
    readonly source: BeatView;
    readonly rootElement: SVGGraphicsElement;
    barSpacing: number;
    protected line: SVGLineElement;
    constructor(source: BeatView, rootElement: SVGGraphicsElement);
    protected refreshBBox(): TSU.Geom.Rect;
    protected refreshMinSize(): TSU.Geom.Size;
    refreshLayout(): void;
    protected updateBounds(x: null | number, y: null | number, w: null | number, h: null | number): [number | null, number | null, number | null, number | null];
}
export declare class BeatEndLines extends Embelishment {
    readonly source: BeatView;
    readonly rootElement: SVGGraphicsElement;
    lineSpacing: number;
    protected lines: SVGLineElement[];
    constructor(source: BeatView, rootElement: SVGGraphicsElement, nLines?: number);
    protected refreshBBox(): TSU.Geom.Rect;
    protected refreshMinSize(): TSU.Geom.Size;
    protected updatePosition(x: null | number, y: null | number): [number | null, number | null];
    barSpacing: number;
    refreshLayout(): void;
    protected updateBounds(_x: null | number, _y: null | number, _w: null | number, _h: null | number): [number | null, number | null, number | null, number | null];
}
export declare class Kampitham extends LabelEmbelishment {
    readonly atomView: LeafAtomView;
    constructor(atomView: LeafAtomView);
}
export declare class Nokku extends LabelEmbelishment {
    readonly atomView: LeafAtomView;
    constructor(atomView: LeafAtomView);
}
export declare class Prathyagatham extends LabelEmbelishment {
    readonly atomView: LeafAtomView;
    constructor(atomView: LeafAtomView);
}
export declare class Spuritham extends LabelEmbelishment {
    readonly atomView: LeafAtomView;
    constructor(atomView: LeafAtomView);
}
export declare class Raavi extends LabelEmbelishment {
    readonly atomView: LeafAtomView;
    constructor(atomView: LeafAtomView);
}
export declare class Kandippu extends LabelEmbelishment {
    readonly atomView: LeafAtomView;
    constructor(atomView: LeafAtomView);
}
export declare class Vaali extends LabelEmbelishment {
    readonly atomView: LeafAtomView;
    constructor(atomView: LeafAtomView);
}
export declare class Odukkal extends LabelEmbelishment {
    readonly atomView: LeafAtomView;
    constructor(atomView: LeafAtomView);
}
export declare class Orikkai extends LabelEmbelishment {
    readonly atomView: LeafAtomView;
    constructor(atomView: LeafAtomView);
}
export declare class Jaaru extends LeafAtomViewEmbelishment {
    readonly jaaru: JaaruGamaka;
    readonly atomView: LeafAtomView;
    pathElem: SVGPathElement;
    constructor(jaaru: JaaruGamaka, atomView: LeafAtomView);
    pathAttribute(x?: number): string;
    protected refreshMinSize(): TSU.Geom.Size;
    protected refreshBBox(): TSU.Geom.Rect;
    protected updateBounds(x: null | number, _y: null | number, _w: null | number, _h: null | number): [number | null, number | null, number | null, number | null];
    refreshLayout(): void;
}
