import type { ControlPosition, IControl, Map, StyleSpecification } from 'maplibre-gl';
import { TerraDraw, TerraDrawExtend } from 'terra-draw';
import type { TerradrawControlOptions, EventType, TerradrawMode, EventArgs } from '../interfaces';
export declare class MaplibreTerradrawControl implements IControl {
    protected controlContainer?: HTMLElement;
    protected map?: Map;
    protected modeButtons: {
        [key: string]: HTMLButtonElement;
    };
    protected _isExpanded: boolean;
    protected _cssPrefix: string;
    get isExpanded(): boolean;
    protected get cssPrefix(): string;
    set isExpanded(value: boolean);
    get showDeleteConfirmation(): boolean;
    set showDeleteConfirmation(value: boolean);
    protected terradraw?: TerraDraw;
    protected options: TerradrawControlOptions;
    protected events: {
        [key: string]: [(event: EventArgs) => void];
    };
    protected defaultMode: string;
    constructor(options?: TerradrawControlOptions);
    getDefaultPosition(): ControlPosition;
    onAdd(map: Map): HTMLElement;
    onRemove(): void;
    on(event: EventType, callback: (event: EventArgs) => void): void;
    off(event: EventType, callback: (event: EventArgs) => void): void;
    protected dispatchEvent(event: EventType, args?: {
        [key: string]: unknown;
    }): void;
    activate(): void;
    deactivate(): void;
    protected handleModeChange(mode: string, target: TerraDraw): void;
    protected syncButtonStates(mode: string): void;
    getTerraDrawInstance(): TerraDraw | undefined;
    protected handleHistoryChange(event: {
        undoSize: number;
        redoSize: number;
    }): void;
    protected toggleEditor(): void;
    resetActiveMode(): void;
    protected addTerradrawButton(mode: TerradrawMode): void;
    getFeatures(onlySelected?: boolean): {
        type: string;
        features: import("terra-draw").GeoJSONStoreFeatures<import("terra-draw").GeoJSONStoreGeometries>[];
    } | undefined;
    cleanStyle(style: StyleSpecification, options?: {
        excludeTerraDrawLayers?: boolean;
        onlyTerraDrawLayers?: boolean;
    }): StyleSpecification;
    protected showDeleteConfirmationDialog(onConfirm: () => void): void;
    protected handleDeleteAllFeatures(): void;
    protected handleDeleteSelectedFeatures(): void;
    protected handleDownload(): void;
    protected toggleButtonsWhenNoFeature(): void;
    protected toggleDeleteSelectionButton(): void;
    protected clearExtendedFeatures(sourceIds: string[], ids?: TerraDrawExtend.FeatureId[] | undefined): void;
}
//# sourceMappingURL=MaplibreTerradrawControl.d.ts.map