import { AcEntity } from '../../angular-cesium/models/ac-entity';
import { EditPoint } from './edit-point';
import { AcLayerComponent } from '../../angular-cesium/components/ac-layer/ac-layer.component';
import { Cartesian3 } from '../../angular-cesium/models/cartesian3';
import { Rectangle } from '../../angular-cesium/models/rectangle';
import { CoordinateConverter } from '../../angular-cesium/services/coordinate-converter/coordinate-converter.service';
import { RectangleEditOptions, RectangleProps } from './rectangle-edit-options';
import { PointProps } from './point-edit-options';
import { LabelProps } from './label-props';
export declare class EditableRectangle extends AcEntity {
    private id;
    private pointsLayer;
    private rectangleLayer;
    private coordinateConverter;
    private positions;
    private movingPoint;
    private done;
    private _enableEdit;
    private _defaultPointProps;
    private _rectangleProps;
    private lastDraggedToPosition;
    private _labels;
    constructor(id: string, pointsLayer: AcLayerComponent, rectangleLayer: AcLayerComponent, coordinateConverter: CoordinateConverter, editOptions: RectangleEditOptions, positions?: Cartesian3[]);
    get labels(): LabelProps[];
    set labels(labels: LabelProps[]);
    get rectangleProps(): RectangleProps;
    set rectangleProps(value: RectangleProps);
    get defaultPointProps(): PointProps;
    set defaultPointProps(value: PointProps);
    get enableEdit(): boolean;
    set enableEdit(value: boolean);
    private createFromExisting;
    setPointsManually(points: EditPoint[], widthMeters?: number): void;
    addPointFromExisting(position: Cartesian3): void;
    addPoint(position: Cartesian3): void;
    movePoint(toPosition: Cartesian3, editPoint: EditPoint): void;
    moveShape(startMovingPosition: Cartesian3, draggedToPosition: Cartesian3): void;
    endMoveShape(): void;
    endMovePoint(): void;
    moveTempMovingPoint(toPosition: Cartesian3): void;
    removePoint(pointToRemove: EditPoint): void;
    addLastPoint(position: Cartesian3): void;
    getRealPositions(): Cartesian3[];
    getRealPositionsCallbackProperty(): any;
    getRealPoints(): EditPoint[];
    getPositions(): Cartesian3[];
    getRectangle(): Rectangle;
    getRectangleCallbackProperty(): Rectangle;
    private removePosition;
    private updatePointsLayer;
    private updateRectangleLayer;
    dispose(): void;
    getPointsCount(): number;
    getId(): string;
}
