/// <reference types="deck.gl" />
import { RGBAColor } from '@deck.gl/core';
import { GeoJsonLayer, TextLayer } from '@deck.gl/layers';
import { EditAction, ClickEvent, StartDraggingEvent, StopDraggingEvent, DraggingEvent, PointerMoveEvent, GeoJsonEditModeType, FeatureCollection } from '@nebula.gl/edit-modes';
import EditableLayer, { EditableLayerProps } from './editable-layer';
export interface EditableGeojsonLayerProps<D> extends EditableLayerProps<D> {
    mode?: any;
    modeConfig?: any;
    selectedFeatureIndexes?: number[];
    onEdit?: (updatedData?: any, editType?: string, featureIndexes?: number[], editContext?: any) => void;
    pickable?: boolean;
    pickingRadius?: number;
    pickingDepth?: number;
    fp64?: boolean;
    filled?: boolean;
    stroked?: boolean;
    lineWidthScale?: number;
    lineWidthMinPixels?: number;
    lineWidthMaxPixels?: number;
    pickingLineWidthExtraPixels?: number;
    lineWidthUnits?: string;
    lineJointRounded?: boolean;
    lineCapRounded?: boolean;
    lineMiterLimit?: number;
    pointRadiusScale?: number;
    pointRadiusMinPixels?: number;
    pointRadiusMaxPixels?: number;
    getLineColor?: RGBAColor | ((feature: any, isSelected: any, mode: any) => RGBAColor);
    getFillColor?: RGBAColor | ((feature: any, isSelected: any, mode: any) => RGBAColor);
    getRadius?: number | ((f: any) => number);
    getLineWidth?: number | ((f: any) => number);
    getTentativeLineColor?: RGBAColor | ((feature: any, isSelected: any, mode: any) => RGBAColor);
    getTentativeFillColor?: RGBAColor | ((feature: any, isSelected: any, mode: any) => RGBAColor);
    getTentativeLineWidth?: number | ((f: any) => number);
    editHandleType?: string;
    editHandlePointRadiusScale?: number;
    editHandlePointOutline?: boolean;
    editHandlePointStrokeWidth?: number;
    editHandlePointRadiusUnits?: string;
    editHandlePointRadiusMinPixels?: number;
    editHandlePointRadiusMaxPixels?: number;
    getEditHandlePointColor?: RGBAColor | ((handle: any) => RGBAColor);
    getEditHandlePointOutlineColor?: RGBAColor | ((handle: any) => RGBAColor);
    getEditHandlePointRadius?: number | ((handle: any) => number);
    editHandleIconAtlas?: any;
    editHandleIconMapping?: any;
    editHandleIconSizeScale?: number;
    editHandleIconSizeUnits?: string;
    getEditHandleIcon?: (handle: any) => string;
    getEditHandleIconSize?: number;
    getEditHandleIconColor?: RGBAColor | ((handle: any) => RGBAColor);
    getEditHandleIconAngle?: number | ((handle: any) => number);
    billboard?: boolean;
}
export default class EditableGeoJsonLayer extends EditableLayer<any, EditableGeojsonLayerProps<any>> {
    static layerName: string;
    static defaultProps: EditableGeojsonLayerProps<any>;
    renderLayers(): any;
    initializeState(): void;
    shouldUpdateState(opts: any): any;
    updateState({ props, oldProps, changeFlags, context, }: {
        props: EditableGeojsonLayerProps<any>;
        oldProps: EditableGeojsonLayerProps<any>;
        changeFlags: any;
        context: any;
        s: any;
    }): void;
    getModeProps(props: EditableGeojsonLayerProps<any>): {
        modeConfig: any;
        data: any;
        selectedIndexes: number[];
        lastPointerMoveEvent: any;
        cursor: any;
        onEdit: (editAction: EditAction<FeatureCollection>) => void;
        onUpdateCursor: (cursor: string) => void;
    };
    selectionAwareAccessor(accessor: any): any;
    isFeatureSelected(feature: Record<string, any>): boolean;
    getPickingInfo({ info, sourceLayer }: Record<string, any>): any;
    _updateAutoHighlight(info: any): void;
    createGuidesLayers(): GeoJsonLayer<unknown, import("@deck.gl/core/lib/layer").LayerProps<unknown>>[];
    createTooltipsLayers(): TextLayer<unknown, {
        sizeScale?: number;
        sizeUnits?: import("@deck.gl/core/lib/layer").WidthUnits;
        sizeMinPixels?: number;
        sizeMaxPixels?: number;
        billboard?: boolean;
        backgroundColor?: RGBAColor;
        fontFamily?: string;
        characterSet?: string | string[];
        fontWeight?: string | number;
        lineHeight?: number;
        fontSettings?: import("@deck.gl/layers/text-layer/font-atlas-manager").FontSettings;
        wordBreak?: "break-all" | "break-word";
        maxWidth?: number;
        getText?: (x: never) => string;
        getPosition?: (x: never) => [number, number];
        getSize: number | ((x: never) => number);
        getColor?: RGBAColor | ((x: never) => RGBAColor);
        getAngle?: number | ((x: never) => number);
        getTextAnchor?: "start" | "middle" | "end" | ((x: never) => import("@deck.gl/layers/text-layer/text-layer").TextAnchor);
        getAlignmentBaseline?: "top" | "center" | "bottom" | ((x: never) => import("@deck.gl/layers/text-layer/text-layer").AlignmentBaseline);
        getPixelOffset?: number[] | ((x: never) => number[]);
        outlineColor?: RGBAColor;
        outlineWidth?: number;
        _subLayerProps?: Object;
        id?: string;
        data?: string | import("@deck.gl/core/lib/layer").DataSet<never> | Promise<import("@deck.gl/core/lib/layer").DataSet<never>>;
        visible?: boolean;
        opacity?: number;
        extensions?: any[];
        pickable?: boolean;
        onHover?: import("@deck.gl/core/lib/layer").LayerInputHandler<never>;
        onClick?: import("@deck.gl/core/lib/layer").LayerInputHandler<never>;
        onDragStart?: import("@deck.gl/core/lib/layer").LayerInputHandler<never>;
        onDrag?: import("@deck.gl/core/lib/layer").LayerInputHandler<never>;
        onDragEnd?: import("@deck.gl/core/lib/layer").LayerInputHandler<never>;
        highlightColor?: RGBAColor | ((pickInfo: import("@deck.gl/core/lib/deck").PickInfo<never>) => RGBAColor);
        highlightedObjectIndex?: number;
        autoHighlight?: boolean;
        coordinateSystem?: number;
        coordinateOrigin?: import("@deck.gl/core").Position;
        wrapLongitude?: boolean;
        modelMatrix?: number[];
        dataComparator?: (newData: never, oldData: never) => boolean;
        dataTransform?: () => never[] | Iterable<never>;
        _dataDiff?: (newData: never, oldData: never) => {
            startRow: number;
            endRow: number;
        };
        positionFormat?: "XYZ" | "XY";
        colorFormat?: "RGBA" | "RGB";
        numInstances?: number;
        updateTriggers?: any;
        loaders?: any[];
        loadOptions?: any;
        onDataLoad?: (value: never[] | Iterable<never>, context: {
            layer: import("@deck.gl/core").Layer<never, import("@deck.gl/core/lib/layer").LayerProps<never>>;
        }) => void;
        parameters?: any;
        getPolygonOffset?: (uniform: any) => [number, number];
        transitions?: {
            [attributeGetter: string]: import("@deck.gl/core/lib/layer").TransitionTiming;
        };
        filterEnabled?: boolean;
        filterTransformSize?: boolean;
        filterTransformColor?: boolean;
    }>[];
    onLayerClick(event: ClickEvent): void;
    onLayerKeyUp(event: KeyboardEvent): void;
    onStartDragging(event: StartDraggingEvent): void;
    onDragging(event: DraggingEvent): void;
    onStopDragging(event: StopDraggingEvent): void;
    onPointerMove(event: PointerMoveEvent): void;
    getCursor({ isDragging }: {
        isDragging: boolean;
    }): any;
    getActiveMode(): GeoJsonEditModeType;
}
//# sourceMappingURL=editable-geojson-layer.d.ts.map