import BaseLayer from 'ol/layer/Base';
import { IGenericSubjectMapLayerMetadata } from '../../actions/defs';
import { Dictionary } from '../common';
/**
 * A factory method for creating OpenLayers layers from a JSON definition
 *
 * @since 0.14
 */
export declare type ExternalLayerCreator = (data: any, meta: IGenericSubjectMapLayerMetadata | undefined, layerOptions: any, appSettings: Dictionary<string>) => BaseLayer;
/**
 * Defines a registry of custom vector layer source drivers
 */
export declare class ExternalLayerFactoryRegistry {
    private static _instance;
    private _vectorCreators;
    constructor();
    /**
     * Gets the registry instance
     * @since 0.14
     */
    static getInstance(): ExternalLayerFactoryRegistry;
    /**
     * Registers the given external vector layer factory method
     *
     * @param driverName
     * @param creator
     * @since 0.14
     */
    registerExternalVectorLayerCreator(driverName: string, creator: ExternalLayerCreator): void;
    /**
     * Gets the external vector layer factory method for the given driver
     *
     * @param driverName
     */
    getExternalVectorLayerCreator(driverName: string): ExternalLayerCreator | undefined;
}
