import React, { CSSProperties, MouseEventHandler, TouchEventHandler } from 'react';
import { ActionHandler, MapStateActions, VisStateActions, toggleModal } from '@kepler.gl/actions';
import { Layer } from '@kepler.gl/layers';
import { Datasets } from '@kepler.gl/table';
import { SplitMap } from '@kepler.gl/types';
import LayerConfiguratorFactory from './layer-configurator';
import LayerPanelHeaderFactory from './layer-panel-header';
type LayerPanelProps = {
    className?: string;
    style?: CSSProperties;
    onMouseDown?: MouseEventHandler;
    onTouchStart?: TouchEventHandler;
    layer: Layer;
    datasets: Datasets;
    layerTypeOptions: {
        id: string;
        label: string;
        icon: any;
        requireData: any;
    }[];
    isDraggable?: boolean;
    idx: number;
    openModal: ActionHandler<typeof toggleModal>;
    layerColorUIChange: ActionHandler<typeof VisStateActions.layerColorUIChange>;
    layerConfigChange: ActionHandler<typeof VisStateActions.layerConfigChange>;
    layerVisualChannelConfigChange: ActionHandler<typeof VisStateActions.layerVisualChannelConfigChange>;
    layerSetIsValid: ActionHandler<typeof VisStateActions.layerSetIsValid>;
    layerTypeChange: ActionHandler<typeof VisStateActions.layerTypeChange>;
    layerVisConfigChange: ActionHandler<typeof VisStateActions.layerVisConfigChange>;
    layerTextLabelChange: ActionHandler<typeof VisStateActions.layerTextLabelChange>;
    removeLayer: ActionHandler<typeof VisStateActions.removeLayer>;
    zoomToLayer: ActionHandler<typeof MapStateActions.fitBounds>;
    duplicateLayer: ActionHandler<typeof VisStateActions.duplicateLayer>;
    listeners?: React.ElementType;
    layerToggleVisibility: ActionHandler<typeof VisStateActions.layerToggleVisibility>;
    splitMap?: SplitMap;
};
declare function LayerPanelFactory(LayerConfigurator: ReturnType<typeof LayerConfiguratorFactory>, LayerPanelHeader: ReturnType<typeof LayerPanelHeaderFactory>): React.ComponentType<LayerPanelProps>;
declare namespace LayerPanelFactory {
    var deps: (typeof LayerPanelHeaderFactory | typeof LayerConfiguratorFactory)[];
}
export default LayerPanelFactory;
