import { Icon } from "./Icon.ts";
import { Shape } from "./Shape.ts";
import { SVGWidget } from "./SVGWidget.ts";
import { Text } from "./Text.ts";
import { BBox, Widget } from "./Widget.ts";
export interface IAnnotation {
    faChar: string;
    tooltip?: string;
    shape_colorFill?: string;
    shape_colorStroke?: string;
    image_colorFill?: string;
    shape?: string;
}
export declare class Entity extends SVGWidget {
    protected _icon_widget: Icon;
    protected _background_widget: Shape;
    protected _title_widget: Text;
    protected _desc_widget: Text;
    protected _annotation_widgets: {
        [idx: number]: {
            widget: SVGWidget;
            bbox: BBox;
        };
    };
    protected _element_anno: any;
    protected _element_background: any;
    protected _element_desc: any;
    protected _element_icon: any;
    protected _element_title: any;
    private _annotationLocal;
    constructor();
    getAnnotationsBBox(): BBox;
    enter(domNode: any, element: any): void;
    update(domNode: any, element: any): void;
    exit(domNode: any, element: any): void;
    moveAnnotations(x_offset: number, y_offset: number): void;
    render(callback?: (w: Widget) => void): this;
}
export interface Entity {
    arrowHeight(): number;
    arrowHeight(_: number): this;
    arrowWidth(): number;
    arrowWidth(_: number): this;
    cornerRadius(): number;
    cornerRadius(_: number): this;
    padding(): number;
    padding(_: number): this;
    paddingPercent(): number;
    paddingPercent(_: number): this;
    annotationIcons(): IAnnotation[];
    annotationIcons(_: IAnnotation[]): this;
    annotationDiameter(): number;
    annotationDiameter(_: number): this;
    annotationSpacing(): number;
    annotationSpacing(_: number): this;
    annotationPaddingPercent(): number;
    annotationPaddingPercent(_: number): this;
    icon(): string;
    icon(_: string): this;
    iconColor(): string;
    iconColor(_: string): this;
    iconDiameter(): number;
    iconDiameter(_: number): this;
    iconPaddingPercent(): number;
    iconPaddingPercent(_: number): this;
    description(): string;
    description(_: string): this;
    descriptionColor(): string;
    descriptionColor(_: string): this;
    descriptionFontFamily(): string;
    descriptionFontFamily(_: string): this;
    descriptionFontSize(): number;
    descriptionFontSize(_: number): this;
    title(): string;
    title(_: string): this;
    titleColor(): string;
    titleColor(_: string): this;
    titleFontFamily(): string;
    titleFontFamily(_: string): this;
    titleFontSize(): number;
    titleFontSize(_: number): this;
    backgroundShape(): string;
    backgroundShape(_: string): this;
    backgroundColorFill(): string;
    backgroundColorFill(_: string): this;
    backgroundColorStroke(): string;
    backgroundColorStroke(_: string): this;
}
