import { IPaintObject, PaintObjectPropertyName } from "../../../../ImageViewer/Layers/types";
import { Bounds, PointLocation } from "../../../../ImageViewer/Models/SelectionBoxTypes";
import { PaintToolbar } from "../../PaintToolbar";
import { IResizeHandlesOwner, ResizeEdge } from "./ResizeHandles";
import { SelectedRegionState, SelectionToolType } from "./types";
export declare class SelectedRegion implements IResizeHandlesOwner {
    paneViewContentElement: HTMLDivElement;
    owner: PaintToolbar;
    private _bordersCanvas;
    private _disposed;
    private _imagePaneClickHandler?;
    private _keyDownHandler?;
    private _outerElement;
    private _pathsBounds?;
    private _previewCanvas;
    private _resizeHandles;
    private _state;
    constructor(owner: PaintToolbar, state?: SelectedRegionState);
    onResize(edge: ResizeEdge, x: number, y: number, trigger: "start" | "move" | "end"): void;
    get outerElement(): HTMLElement;
    get bounds(): Bounds;
    get dirty(): boolean;
    set dirty(dirty: boolean);
    get selectionToolType(): SelectionToolType;
    get copiedImage(): HTMLCanvasElement | undefined;
    set copiedImage(img: HTMLCanvasElement | undefined);
    get hasArea(): boolean;
    get resizable(): boolean;
    get state(): SelectedRegionState;
    set state(state: SelectedRegionState);
    get viewer(): import("../../../../ImageViewer/Models").IImageViewer;
    get paintCanvasScale(): number;
    cloneState(): SelectedRegionState;
    copyImage(copiedImage?: HTMLCanvasElement, skipCopyToClipboard?: boolean): void;
    pasteCopiedImage(location?: PointLocation): void;
    createClippedCanvas(selectionToolType?: SelectionToolType): HTMLCanvasElement;
    setSelectedRegionState(state: SelectedRegionState): void;
    get closed(): boolean;
    set closed(closed: boolean);
    finishSelection(): void;
    addPointWithSort(point: PointLocation, triggerType?: "start" | "move" | "end"): boolean;
    readonly id: string;
    readonly typeName: "PaintObjectDesigner" | "SelectedRegion";
    paintObject: IPaintObject | null;
    dispose(): void;
    getPaintObjectProperty(propertyName: PaintObjectPropertyName): null;
    setPaintObjectProperty(propertyName: PaintObjectPropertyName, val: any, dirty?: boolean | undefined): boolean;
    finishInlineEdits(): void;
    onPointerStart(point: PointLocation): void;
    onPointerMove(point: PointLocation): void;
    onPointerEnd(point: PointLocation): boolean;
    updatePosition(point: PointLocation, moveDisatance?: {
        x: number;
        y: number;
    } | undefined): boolean;
    _onPointerDownInternal(event: PointerEvent): void;
    invalidate(): void;
    drawDesignerDot(ctx: CanvasRenderingContext2D, p: PointLocation, pointScale?: number): void;
    repaint(): void;
    _marchAnimationTimeout: any;
    _marchOffset: number;
    _marchAnimation(): void;
    getSelectedPaths(relativeToBounds?: boolean, selectionToolType?: SelectionToolType): Path2D[];
    createSelectionPaths(relativeToBounds?: boolean, selectionToolType?: SelectionToolType, pathScale?: number): Path2D[];
    get imagePaneView(): HTMLElement;
    private _createUIControls;
    bindEvents(): void;
    unbindEvents(): void;
    shouldClosePolygonPath(p1: PointLocation, p2: PointLocation): boolean;
    private _onMovingHandler?;
    private _onMovingEndHandler?;
    private _movingStartPoint;
    private _startMovingBounds;
    private _startMovingPoints;
    private _dragStartTime;
    private _movedFlag;
    _onStartMoving(event: PointerEvent): void;
    _moveObject(moveX: number, moveY: number): void;
    _onMoving(event: PointerEvent): void;
    _onMovingEnd(event: PointerEvent): void;
}
