import { Destroyable, Event, Listener, ObservableArray } from "vtxf-xe2/dist-node/xe2-base-utils";
import { GeoPolylineArcType } from '../../GeoPolyline';
import { PolylinePositionEditor } from "./PolylinePositionEditor";
import { PolylineWrapper } from "./PolylineWrapper";
import { EditingProcessing } from "./EditingProcessing";
import { GeoPolylineEditor } from '../';
export declare class GeoPolylineEditorImpl extends Destroyable {
    private _sceneObject;
    static defaults: {
        enabled: boolean;
        debug: boolean;
        polylineShow: boolean;
        polylineColor: [number, number, number, number];
        polylineArcType: GeoPolylineArcType;
        polylineWidth: number;
        maxPointsNum: number;
        loop: boolean;
        firstControlPointImageUrl: string;
        otherControlPointImageUrl: string;
        middlePointImageUrl: string;
    };
    get sceneObject(): GeoPolylineEditor;
    private _positionEditors;
    get positionEditors(): ObservableArray<PolylinePositionEditor>;
    private _enabled;
    get enabled(): boolean | undefined;
    get enabledChanged(): Listener<[boolean | undefined, boolean | undefined]>;
    set enabled(value: boolean | undefined);
    private _debug;
    get debug(): boolean | undefined;
    get debugChanged(): Listener<[boolean | undefined, boolean | undefined]>;
    set debug(value: boolean | undefined);
    private _menuPoisEnabled;
    get menuPoisEnabled(): boolean;
    get menuPoisEnabledChanged(): Listener<[boolean, boolean]>;
    set menuPoisEnabled(value: boolean);
    private _menuPoisCommand;
    get menuPoisCommand(): Event<[positionEditor: PolylinePositionEditor, command: string]>;
    private _maxPointsNum;
    get maxPointsNum(): number | undefined;
    get maxPointsNumChanged(): Listener<[number | undefined, number | undefined]>;
    set maxPointsNum(value: number | undefined);
    private _noModifingAfterAdding;
    get noModifingAfterAdding(): boolean;
    set noModifingAfterAdding(value: boolean);
    get noModifingAfterAddingChanged(): Listener<[boolean, boolean]>;
    private _hideCursorInfo;
    get hideCursorInfo(): boolean;
    set hideCursorInfo(value: boolean);
    get hideCursorInfoChanged(): Listener<[boolean, boolean]>;
    private _firstControlPointImageUrl;
    get firstControlPointImageUrl(): string | undefined;
    get firstControlPointImageUrlChanged(): Listener<[string | undefined, string | undefined]>;
    set firstControlPointImageUrl(value: string | undefined);
    private _otherControlPointImageUrl;
    get otherControlPointImageUrl(): string | undefined;
    get otherControlPointImageUrlChanged(): Listener<[string | undefined, string | undefined]>;
    set otherControlPointImageUrl(value: string | undefined);
    private _middlePointImageUrl;
    get middlePointImageUrl(): string | undefined;
    get middlePointImageUrlChanged(): Listener<[string | undefined, string | undefined]>;
    set middlePointImageUrl(value: string | undefined);
    private _flyToEvent;
    get flyToEvent(): Listener<[number | undefined]>;
    flyTo(duration?: number): void;
    private _moveWithFirstPosition;
    get moveWithFirstPosition(): boolean;
    set moveWithFirstPosition(value: boolean);
    get moveWithFirstPositionChanged(): Listener<[boolean, boolean]>;
    /**
     * 每次调用都会创建一个新的数组，谨慎使用，避免影响性能！
     * @returns
     */
    getPositions(): [number, number, number][];
    resetPositions(value?: [number, number, number][]): void;
    forceResetPositions(value?: [number, number, number][]): void;
    get positions(): [number, number, number][];
    private _positionsChanged;
    get positionsChanged(): Event<[]>;
    private _polylineWrapper;
    get polylineWrapper(): PolylineWrapper;
    private _editingProcessing;
    get editingProcessing(): EditingProcessing;
    private _loop;
    get loop(): boolean | undefined;
    get loopChanged(): Listener<[boolean | undefined, boolean | undefined]>;
    set loop(value: boolean | undefined);
    constructor(_sceneObject: GeoPolylineEditor);
}
