import { Coordinate } from 'ol/coordinate';
import { Geometry } from 'ol/geom';
export interface WMSLayer {
    id: string;
    name: string;
    projection: string;
    type: string;
    url: string;
    use_cors: boolean;
    version: string;
    zIndex: number;
}
export type WMSLayerConfig = {
    type: 'WMS';
    symbol: string;
    url: string;
    use_cors: boolean;
    read_only: boolean;
    creatable_por: string;
    min_zoom: number;
    max_zoom: number;
    declutter: boolean;
    format: string;
    projection: string;
    version: string;
    layerOrder: number;
    geomType: string;
    mlv_id: number;
    visible_for_rlo: boolean;
};
export interface GroupedWMSLayer extends Omit<WMSLayer, 'name'> {
    layers: string[];
}
export type GEMLayerConfig = {
    creatable_por: boolean;
    declutter: boolean;
    format: string | null;
    geomType: 'POINT' | 'LINESTRING' | 'POLYGON';
    layerOrder: number;
    max_zoom: number;
    min_zoom: number;
    mlv_id: number;
    projection: string | null;
    read_only: boolean;
    symbol: string;
    type: 'GEM' | 'WMS' | 'VECTOR' | 'RASTR';
    url: string | null;
    use_cors: boolean;
    version: string | null;
    visible_for_rlo: boolean;
};
export type GEMVectorLayer = {
    image: string | null;
    items: GEMFeature[];
    layer_style: StyleDefinition;
    layer_symbol: string;
};
export type StyleDefinition = {
    fill: string;
    radius: string;
    rotateWithView?: boolean;
    rotation?: number;
    styleDefinition?: boolean;
    stroke: {
        color: string;
        width?: string;
        lineDash?: number[];
        lineCap?: CanvasLineCap;
    };
};
export type GEMFeature = {
    id: number;
    road_id: number;
    item_style: StyleDefinition | null;
    image: string | null;
    text: string | null;
    ref_id: number | null;
    parent_id: number | null;
    geometry: Geometry;
};
type Bbox = {
    coordinates: Coordinate[][];
    crs: {
        properties: {
            name: string;
        };
        type: string;
    };
    type: string;
};
export type QueryMapItemsPayload = {
    layerList: string[];
    bbox: Bbox;
    zoom: number;
};
export {};
