import { Dictionary, IExternalBaseLayer } from "../api/common";
import { IGenericSubjectMapLayer, IInitialExternalLayer } from '../actions/defs';
import olSource from "ol/source/Source";
import LayerBase from "ol/layer/Base";
import ClusterSource from 'ol/source/Cluster';
import { OLVectorSource } from "../api/ol-types";
import { ProjectionLike } from "ol/proj";
export declare function clusterSourceIfRequired(source: OLVectorSource, def: {
    cluster?: {
        distance: number;
    };
}): ClusterSource | OLVectorSource;
export declare function createOLLayerFromSubjectDefn(defn: IGenericSubjectMapLayer | IInitialExternalLayer, mapProjection: ProjectionLike, isExternal: boolean, appSettings: Dictionary<string>): LayerBase;
/**
 * Creates an OpenLayers source based on the given external base layer definition
 *
 * @export
 * @param {IExternalBaseLayer} layer
 * @returns
 */
export declare function createExternalSource(layer: IExternalBaseLayer): olSource;
