import { default as VectorLayer } from 'ol/layer/Vector';
import { default as VectorSource } from 'ol/source/Vector';
import { Feature, Map as MapOl } from 'ol';
import { LineString, Polygon, Point } from 'ol/geom';
export declare const WHARF_LAYER_CLASS_NAME = "zh-map-wharf-layer";
/**
 * 码头线数据接口
 */
export interface WharfLineData {
    id: string | number;
    coordinates: number[][];
    [key: string]: unknown;
}
/**
 * 码头面数据接口
 */
export interface WharfPolygonData {
    id: string | number;
    coordinates: number[][];
    [key: string]: unknown;
}
/**
 * 码头点数据接口
 */
export interface WharfPointData {
    id: string | number;
    coordinate: number[];
    [key: string]: unknown;
}
/**
 * 选中的码头数据接口（统一接口，可以是线、面或点）
 */
export interface WharfSelectedData {
    type: 'line' | 'polygon' | 'point';
    id: string | number;
    data: WharfLineData | WharfPolygonData | WharfPointData;
}
export declare const useWharfManager: (mapInstance: MapOl) => {
    createWharfLine: (lineData: WharfLineData) => Feature<LineString, {
        [x: string]: any;
    }> | null;
    createWharfLines: (linesData: WharfLineData[]) => void;
    createWharfPolygon: (polygonData: WharfPolygonData) => Feature<Polygon, {
        [x: string]: any;
    }> | null;
    createWharfPolygons: (polygonsData: WharfPolygonData[]) => void;
    createWharfPoint: (pointData: WharfPointData) => Feature<Point, {
        [x: string]: any;
    }> | null;
    createWharfPoints: (pointsData: WharfPointData[]) => void;
    removeWharfLayer: () => void;
    removeWharfLine: (id: string | number) => void;
    removeWharfLines: (ids: (string | number)[]) => void;
    removeWharfPolygon: (id: string | number) => void;
    removeWharfPolygons: (ids: (string | number)[]) => void;
    removeWharfPoint: (id: string | number) => void;
    removeWharfPoints: (ids: (string | number)[]) => void;
    handleWharfHover: (feature: Feature | null) => void;
    clearHover: () => void;
    selected: (wharfData?: WharfSelectedData) => void;
    highlightLine: (id: string | number) => void;
    highlightPolygon: (id: string | number) => void;
    highlightPoint: (id: string | number) => void;
    clearHighlightLine: (id: string | number) => void;
    clearHighlightPolygon: (id: string | number) => void;
    clearHighlightPoint: (id: string | number) => void;
    clearAllHighlight: () => void;
    getAllLineFeatures: () => Feature<LineString>[];
    getAllPolygonFeatures: () => Feature<Polygon>[];
    getAllPointFeatures: () => Feature<Point>[];
    getLineFeature: (id: string | number) => Feature<LineString> | undefined;
    getPolygonFeature: (id: string | number) => Feature<Polygon> | undefined;
    getPointFeature: (id: string | number) => Feature<Point> | undefined;
    getSelectedWharf: () => WharfSelectedData | null;
    getLayer: () => VectorLayer<VectorSource<any>, any>;
    getSource: () => VectorSource<Feature<import('ol/geom').Geometry, {
        [x: string]: any;
    }>>;
};
