import { DatasetType, WMSDatasetMetadata } from '@kepler.gl/constants';
import { WMSLayer as DeckWMSLayer } from '@kepler.gl/deckgl-layers';
import { KeplerTable as KeplerDataset } from '@kepler.gl/table';
import { AnimationConfig, Field, LayerBaseConfig, VisConfigBoolean, VisConfigNumber, VisConfigSelection } from '@kepler.gl/types';
import { DataContainerInterface } from '@kepler.gl/utils';
import TileDataset from '../vector-tile/common-tile/tile-dataset';
import WMSLayerIcon from './wms-layer-icon';
import { FindDefaultLayerPropsReturnValue } from '../layer-utils';
import AbstractTileLayer, { AbstractTileLayerVisConfigSettings, LayerData } from '../vector-tile/abstract-tile-layer';
export type WMSTile = {
    id: string;
    url: string;
};
export declare const wmsTileVisConfigs: {
    opacity: "opacity";
    transparent: "transparent";
};
export type WMSLayerVisConfig = {
    opacity: number;
    transparent?: boolean;
    wmsLayer: {
        name: string;
        title: string;
        boundingBox: number[][];
        queryable: boolean;
    } | null;
};
export type WMSLayerConfig = LayerBaseConfig & {
    visConfig: WMSLayerVisConfig;
};
export type WMSLayerVisConfigSettings = AbstractTileLayerVisConfigSettings & {
    opacity: VisConfigNumber;
    transparent: VisConfigBoolean;
    wmsLayer: VisConfigSelection;
};
export type WMSLayerData = LayerData & {
    tilesetDataUrl?: string | null;
    metadata?: any;
};
export default class WMSLayer extends AbstractTileLayer<WMSTile, any[]> {
    config: WMSLayerConfig;
    visConfigSettings: WMSLayerVisConfigSettings;
    private deckLayerRef;
    constructor(props: ConstructorParameters<typeof AbstractTileLayer>[0] & {
        layers?: WMSDatasetMetadata['layers'];
    });
    get type(): "wms";
    get name(): string;
    get layerIcon(): typeof WMSLayerIcon;
    static findDefaultLayerProps(dataset: KeplerDataset): FindDefaultLayerPropsReturnValue;
    get supportedDatasetTypes(): DatasetType[];
    protected initTileDataset(): TileDataset<WMSTile, any[]>;
    accessRowValue(_field?: Field, _indexKey?: number | null): () => null;
    formatLayerData(datasets: any, oldLayerData: any, animationConfig: any): WMSLayerData;
    _getCurrentServiceLayer(): {
        name: string;
        title: string;
        boundingBox: number[][];
        queryable: boolean;
    } | null;
    updateLayerMeta(dataset: KeplerDataset): void;
    hasHoveredObject(objectInfo: any): any;
    getHoverData(object: any, dataContainer: DataContainerInterface, fields: Field[], animationConfig: AnimationConfig, hoverInfo: {
        index: number;
        x?: number;
        y?: number;
    }): {
        wmsFeatureData: any;
        fieldValues?: undefined;
    } | {
        fieldValues: {
            labelMessage: string;
            value: string;
        }[];
        wmsFeatureData?: undefined;
    } | null;
    renderLayer(opts: any): DeckWMSLayer[];
    protected _onClick(layerCallbacks: any, { bitmap, coordinate }: {
        bitmap: any;
        coordinate: any;
    }): Promise<{
        name: string;
        value: string;
    }[] | null>;
    protected getWMSFeatureInfo(x: number, y: number): Promise<Array<{
        name: string;
        value: string;
    }> | null>;
    protected parseWMSFeatureInfo(xmlString: string): Array<{
        name: string;
        value: string;
    }>;
}
