import type { VectorFeatureFileFormat, ColorPalette, ColorVariable, PrintFileFormat } from '../crosssectiontypes';
import type { Marker, Measurement } from '../scatterplot';
import GirafeHTMLElement from '../../../base/GirafeHTMLElement';
import { CrossSectionState } from '../crosssectionstate';
import I18nManager from '../../../tools/i18n/i18nmanager';
import { Style } from 'ol/style.js';
import VectorSource from 'ol/source/Vector';
import VectorLayer from 'ol/layer/Vector';
import Feature from 'ol/Feature';
import { Geometry, LineString, Point, Polygon } from 'ol/geom';
import { Draw, Modify } from 'ol/interaction';
import OL3Parser from 'jsts/org/locationtech/jts/io/OL3Parser.js';
declare class CrossSectionSettingsComponent extends GirafeHTMLElement {
    template: () => import("uhtml").Hole;
    crossSectionState: CrossSectionState;
    i18nManager: I18nManager;
    private readonly eventsCallbacks;
    darkFrontendMode: boolean;
    visible: boolean;
    private readonly 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;
    setLineDrawingMode(val: boolean): void;
    setSectionWidth(val: number): void;
    setVerticalExaggeration(val: number): void;
    setPointSize(val: number): void;
    setBackgroundColor(val: string): void;
    setUniformColor(val: string): void;
    setColorPalette(val: ColorPalette): void;
    setColorVariable(val: ColorVariable): 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;
    registerVisibilityEvents(): void;
    private togglePanel;
    connectedCallback(): void;
}
export default CrossSectionSettingsComponent;
