import { BaseStopableAnnotator } from "./BaseStopableAnnotator";
import InternalConfig from "../utils/InternalConfig";
import { Point } from "../model/Point";
import { AnnotatorContainer } from "../AnnotatorContainer";
import { StrokeType } from "../model/Styles";
export declare class FreeDrawAnnotator extends BaseStopableAnnotator {
    static readonly xtype: string;
    private bufferSize;
    private rect;
    protected strPath: string;
    private buffer;
    private points;
    protected svgContainer: SVGElement;
    protected initialized: boolean;
    protected isDrawing: boolean;
    constructor(config: InternalConfig, parent: AnnotatorContainer);
    protected createPath(config: InternalConfig): void;
    private initAnnotator;
    stop(): void;
    protected parentTouchMove: (evt: TouchEvent) => void;
    protected parentMouseMove: (evt: MouseEvent) => void;
    protected onParentMouseMove(evt: MouseEvent): void;
    protected parentTouchStart: (evt: TouchEvent) => void;
    private parentMouseDown;
    protected startDragging(evt: MouseEvent | Touch): void;
    protected parentTouchEnd: (evt: TouchEvent) => void;
    protected parentMouseUp: (evt: MouseEvent) => void;
    protected endDragging(evt: MouseEvent | Touch): void;
    protected getMousePosition(e: MouseEvent | Touch): Point;
    private appendToBuffer;
    private getAveragePoint;
    private updateSvgPath;
    moveBy(dx: number, dy: number, evt: MouseEvent): void;
    setSelected(selected: boolean): void;
    intersects(x: number, y: number, w: number, h: number): boolean;
    setStrokeType(strokeType: StrokeType): void;
    setStrokeWidth(width: number): void;
    setDrawColor(color: string): void;
    toXML(): Element;
    fromXML(element: Element): void;
    toJSON(): Object;
    fromJSON(obj: any): void;
}
