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 { EllipseEditOptions, EllipseProps } from './ellipse-edit-options';
import { PointProps } from './point-edit-options';
import { PolylineProps } from './polyline-edit-options';
import { LabelProps } from './label-props';
import { CoordinateConverter } from '../../angular-cesium/services/coordinate-converter/coordinate-converter.service';
export declare class EditableEllipse extends AcEntity {
    private id;
    private ellipsesLayer;
    private pointsLayer;
    private coordinateConverter;
    private options;
    private _center;
    private _majorRadiusPoint;
    private _majorRadius;
    private _minorRadius;
    private _rotation;
    private doneCreation;
    private _enableEdit;
    private _minorRadiusPoints;
    private lastDraggedToPosition;
    private _ellipseProps;
    private _pointProps;
    private _polylineProps;
    private _labels;
    constructor(id: string, ellipsesLayer: AcLayerComponent, pointsLayer: AcLayerComponent, coordinateConverter: CoordinateConverter, options: EllipseEditOptions);
    get labels(): LabelProps[];
    set labels(labels: LabelProps[]);
    get polylineProps(): PolylineProps;
    set polylineProps(value: PolylineProps);
    get pointProps(): PointProps;
    set pointProps(value: PointProps);
    get ellipseProps(): EllipseProps;
    set ellipseProps(value: EllipseProps);
    get center(): EditPoint;
    get majorRadiusPoint(): EditPoint;
    getMajorRadiusPointPosition(): Cartesian3;
    getMinorRadiusPointPosition(): Cartesian3;
    get enableEdit(): boolean;
    set enableEdit(value: boolean);
    setManually(center: Cartesian3, majorRadius: number, rotation?: number, minorRadius?: number, centerPointProp?: PointProps, radiusPointProp?: PointProps, ellipseProp?: EllipseProps): void;
    addPoint(position: Cartesian3): void;
    transformToEllipse(): void;
    addLastPoint(position: Cartesian3): void;
    movePoint(toPosition: Cartesian3, editPoint: EditPoint): void;
    moveEllipse(dragStartPosition: Cartesian3, dragEndPosition: Cartesian3): void;
    endMoveEllipse(): void;
    private updateMinorRadiusEditPoints;
    getMajorRadius(): number;
    getMinorRadius(): number;
    getRotation(): number;
    updateRotation(): number;
    getRotationCallbackProperty(): any;
    getMinorRadiusCallbackProperty(): any;
    getMajorRadiusCallbackProperty(): any;
    getCenter(): Cartesian3;
    getCenterCallbackProperty(): any;
    dispose(): void;
    getId(): string;
    private updateEllipsesLayer;
    private updatePointsLayer;
}
