import type { VectorFeatureFileFormat, ColorPalette, ColorVariable, PrintFileFormat } from '../crosssectiontypes.js';
import type { Marker, Measurement } from '../scatterplot.js';
import GirafeHTMLElement from '../../../base/GirafeHTMLElement.js';
import { CrossSectionState } from '../crosssectionstate.js';
import { Style } from 'ol/style.js';
import VectorSource from 'ol/source/Vector.js';
import VectorLayer from 'ol/layer/Vector.js';
import Feature from 'ol/Feature.js';
import { Geometry, LineString, Point, Polygon } from 'ol/geom.js';
import { Draw, Modify } from 'ol/interaction.js';
import OL3Parser from 'jsts/org/locationtech/jts/io/OL3Parser.js';
import IGirafePanel from '../../../tools/state/igirafepanel.js';
declare class CrossSectionSettingsComponent extends GirafeHTMLElement implements IGirafePanel {
    protected templateUrl: string | null;
    protected styleUrls: string[] | null;
    template: () => import("uhtml").Hole;
    crossSectionState: CrossSectionState;
    private readonly eventsCallbacks;
    darkFrontendMode: boolean;
    isPanelVisible: boolean;
    panelTitle: string;
    panelTogglePath: string;
    private get map();
    linestring: Feature<LineString>;
    linestringSource: VectorSource<Feature<Geometry>>;
    linesLayer: VectorLayer<VectorSource<Feature<Geometry>>>;
    domainLinestring: Feature<LineString>;
    domainLinestringSource: VectorSource<Feature<Geometry>>;
    domainLineStringLayer: VectorLayer<VectorSource<Feature<Geometry>>>;
    polygon: Feature<Polygon>;
    polygonSource: VectorSource<Feature<Geometry>>;
    polygonLayer: VectorLayer<VectorSource<Feature<Geometry>>>;
    pointer: Feature<Point>;
    pointerSource: VectorSource<Feature<Geometry>>;
    pointerLayer: VectorLayer<VectorSource<Feature<Geometry>>>;
    points: Feature<Point>[];
    pointsSource: VectorSource<Feature<Geometry>>;
    pointsLayer: VectorLayer<VectorSource<Feature<Geometry>>>;
    drawInteraction: Draw;
    modifyInteraction: Modify;
    linestringLength: number;
    markersTable: HTMLTableElement | null;
    measurementsTable: HTMLTableElement | null;
    parser: OL3Parser;
    iconStyle: Style;
    pointStyleFunction: (feature: Feature) => Style;
    constructor();
    private initializeMapElements;
    private initializeLinestring;
    private initializeDomainLinestring;
    private initializePolygon;
    private initializePointer;
    private initializePointsLayer;
    private initializeInteractions;
    private handleAddFeature;
    private initializeDrawInteraction;
    private initializeModifyInteraction;
    updateMarkers(polygon: Feature<Polygon>): void;
    drawLinestringBuffer(): void;
    updateLinestringCoordinates(): void;
    drawDomainLinestring(): void;
    getDistanceAtCoord(lineStringGeom: LineString, coord: [number, number]): number;
    shiftLinestring(shift?: [number, number]): void;
    drawPointer(coords: [number, number]): void;
    drawMapMarkers(): void;
    addInteractions(): void;
    removeInteractions(): void;
    toggleMeasureDraw(): void;
    toggleMarkerDraw(): void;
    toggleLineDraw(): void;
    toggleVisibility(id: string): void;
    setColor(id: string, color: string): void;
    setColorVariable(id: string, colorby: ColorVariable): void;
    setLineDrawingMode(val: boolean): void;
    setSectionWidth(val: number): void;
    setVerticalExaggeration(val: number): void;
    setPointSize(val: number): void;
    setGridVisibility(val: boolean): void;
    setBackgroundColor(val: string): void;
    setColorPalette(val: ColorPalette): void;
    exportFeature(features: Feature[], filename: string, format: VectorFeatureFileFormat): void;
    renderMeasurementsTable(table: HTMLTableElement, records: Measurement[]): void;
    renderAnnotationsTable(table: HTMLTableElement, records: Marker[]): void;
    deleteProfile(): void;
    deleteMarker(id: string): void;
    deleteAllMarkers(): void;
    deleteAllMeasurements(): void;
    resetZoom(): void;
    zoomToMarker(id: string): void;
    setViewSync(val: boolean): void;
    printPlot(printFileFormat: PrintFileFormat): void;
    setPrintFileFormat(val: PrintFileFormat): void;
    setAnnotationsFileFormat(val: VectorFeatureFileFormat): void;
    setLineFileFormat(val: VectorFeatureFileFormat): void;
    handleCursorDomainCoordinatesChange(cursorDomainCoordinates: [number, number]): void;
    render(): void;
    private renderComponent;
    private renderEmptyComponent;
    registerEvents(): void;
    unregisterEvents(): void;
    togglePanel(visible: boolean): void;
    protected connectedCallback(): void;
}
export default CrossSectionSettingsComponent;
