import { Map } from 'ol';
type OpenLayersMapType = Map & {
    uid?: string | number;
    instanceType?: 'OpenLayers';
};
type OpenLayersMapOptions = {
    target: HTMLElement | string;
    view?: any;
    layers?: any;
    controls?: any;
};
type OpenLayersQueryOption = {
    url: string;
    type: 'ID' | 'SQL' | 'Bounds' | 'Geometry' | 'Distance' | 'Buffer' | 'GridCellInfo' | 'Fields' | 'FieldStatisticsInfo';
    data: any;
};
type OverlayOperationType = 'CLIP' /** 操作数据集（几何对象）裁剪被操作数据集（几何对象）。 */ | 'ERASE' /** 在被操作数据集（几何对象）上擦除掉与操作数据集（几何对象）相重合的部分。 */ | 'IDENTITY' /** 对被操作数据集（几何对象）进行同一操作，即操作执行后，被操作数据集（几何对象）包含来自操作数据集（几何对象）的几何形状。 */ | 'INTERSECT' /** 对两个数据集（几何对象）求交，返回两个数据集（几何对象）的交集。 */ | 'UNION' /** 对两个面数据集（几何对象）进行合并操作。 */ | 'UPDATE' /** 对两个面数据集（几何对象）进行更新操作。 */ | 'XOR'; /** 对两个面数据集（几何对象）进行对称差操作。 */
type RelationsOption = {
    url: string;
    operateDataset: string;
    sourceDataset: string;
    operation: OverlayOperationType;
};
type BufferOption = {
    url: string;
    layerName: string;
    geometry: any;
    distance: number;
    isCloseClip?: boolean;
};
type OverlayOption = {
    url: string;
    layerName: string;
    geometry: any;
    isCloseClip?: boolean;
};
type SummaryOption = {
    statisticalField: string;
    areaField: string;
    lengthField: string;
    spatialCRS?: string;
};
type SearchOption = {
    url: string;
    options: {
        search: WhereOption | WhereOption[];
        geometry?: any;
        summary?: SummaryOption;
    };
};
type SearchResult = {
    geometry: any;
    attributes: any;
};
type searchType = 'like' | 'in' | '>' | '=' | '<' | '<>' | 'not in' | 'is null' | 'is not null' | '>=' | '<=';
type WhereType = {
    field: string;
    type: searchType;
    value: string | number | string[] | number[];
};
type WhereOption = {
    where?: WhereType[];
    connection?: ('and' | 'or')[];
    layerName?: string;
};
export { OpenLayersMapType, OpenLayersMapOptions, OpenLayersQueryOption, OverlayOperationType, RelationsOption, BufferOption, OverlayOption, SearchOption, SearchResult, WhereOption, SummaryOption };
