import React, { ComponentType } from 'react';
import { ActionHandler, toggleSplitMapViewport } from '@kepler.gl/actions';
import { Layer } from '@kepler.gl/layers';
import { LayerVisConfig, MapControls, MapState } from '@kepler.gl/types';
import { MapLegendControlSettings } from '@kepler.gl/types';
import MapControlPanelFactory from './map-control-panel';
import MapControlTooltipFactory from './map-control-tooltip';
import MapLegendFactory from './map-legend';
export type MapLegendPanelFactoryDeps = [
    typeof MapControlTooltipFactory,
    typeof MapControlPanelFactory,
    typeof MapLegendFactory
];
interface MapLegendPanelIcons {
    legend: ComponentType<any>;
}
export type MapLegendPanelProps = {
    theme: any;
    layers: ReadonlyArray<Layer>;
    scale: number;
    onToggleMapControl: (control: string) => void;
    isExport: boolean;
    logoComponent: Element;
    actionIcons: MapLegendPanelIcons;
    mapControls: MapControls;
    mapState?: MapState;
    onLayerVisConfigChange?: (oldLayer: Layer, newVisConfig: Partial<LayerVisConfig>) => void;
    onToggleLayerVisibility?: (layer: Layer) => void;
    onToggleSplitMapViewport?: ActionHandler<typeof toggleSplitMapViewport>;
    isViewportUnsyncAllowed?: boolean;
    onClickControlBtn?: (e?: MouseEvent) => void;
    className: string;
    settings: MapLegendControlSettings;
    isSidePanelShown: boolean;
    activeSidePanel: string | null;
    setMapControlSettings: any;
};
type MapLegendPanelComponentType = React.FC<MapLegendPanelProps>;
declare function MapLegendPanelFactory(MapControlTooltip: ReturnType<typeof MapControlTooltipFactory>, MapControlPanel: ReturnType<typeof MapControlPanelFactory>, MapLegend: ReturnType<typeof MapLegendFactory>): MapLegendPanelComponentType;
declare namespace MapLegendPanelFactory {
    var deps: (typeof MapControlTooltipFactory | typeof MapControlPanelFactory | typeof MapLegendFactory)[];
}
export default MapLegendPanelFactory;
