/**
 * Controller component for drawing features
 *
 * @element eox-drawtools-controller
 */
export class EOxDrawToolsController extends LitElement {
    static properties: {
        multipleFeatures: {
            attribute: boolean;
            type: BooleanConstructor;
        };
        drawnFeatures: {
            attribute: boolean;
            state: boolean;
            type: ArrayConstructor;
        };
        currentlyDrawing: {
            attribute: boolean;
            state: boolean;
            type: BooleanConstructor;
        };
        drawFunc: {
            attribute: boolean;
            type: ObjectConstructor;
        };
        select: {
            type: BooleanConstructor;
        };
        importFeatures: {
            attribute: string;
            type: BooleanConstructor;
        };
        showEditor: {
            attribute: string;
            type: BooleanConstructor;
        };
        geoJSON: {
            attribute: string;
            type: StringConstructor;
        };
        type: {
            attribute: string;
            type: StringConstructor;
        };
        unstyled: {
            type: BooleanConstructor;
        };
    };
    /**
     * Allow adding more than one feature at a time
     */
    multipleFeatures: boolean;
    /**
     * The array of drawn native OpenLayers features. Normally includes only one feature,
     * until multiple feature drawing is enabled.
     *
     * @type Array<import("ol").Feature>
     */
    drawnFeatures: Array<import("ol").Feature>;
    /**
     * Allow import features using drag-drop and upload button
     * @type Boolean
     */
    importFeatures: boolean;
    /**
     * Show geo-json editor for draw tool
     * @type Boolean
     */
    showEditor: boolean;
    /**
     * Whether the user is currently in the process of drawing or not
     */
    currentlyDrawing: boolean;
    /**
     * List of draw function object like start, discard etc.
     */
    drawFunc: any;
    /**
     * Parsed and Stringify Geo JSON
     * @type String
     */
    geoJSON: string;
    /**
     * Type of the drawn feature
     * @type {"Polygon" | "Point" | "LineString" | "Circle" | "Box"}
     */
    type: "Polygon" | "Point" | "LineString" | "Circle" | "Box";
    /**
     * Render the element without additional styles
     */
    unstyled: boolean;
    /**
     *
     */
    select: boolean;
    /**
     * Updates button states based on conditions
     */
    updateButtonStates(): void;
    /**
     * Overrides createRenderRoot to handle shadow DOM
     */
    createRenderRoot(): this;
    render(): import("lit-html").TemplateResult<1>;
    #private;
}
import { LitElement } from "lit";
//# sourceMappingURL=controller.d.ts.map