import React from 'react';
import SourceDataSelectorFactory from '../common/source-data-selector';
import AggrScaleSelectorFactory from './aggr-scale-selector';
import ChannelByValueSelectorFactory from './channel-by-value-selector';
import { ArcLayerColorSelectorFactory, LayerColorRangeSelectorFactory, LayerColorSelectorFactory } from './layer-color-selector';
import LayerColumnModeConfigFactory from './layer-column-mode-config';
import LayerConfigGroupFactory from './layer-config-group';
import LayerTypeSelectorFactory from './layer-type-selector';
import TextLabelPanelFactory from './text-label-panel';
import VisConfigSliderFactory from './vis-config-slider';
import VisConfigSwitchFactory from './vis-config-switch';
import RasterTileLayerConfiguratorFactory from './raster-tile-layer-configurator';
import VectorTileLayerConfiguratorFactory from './vector-tile-layer-configurator';
import { ActionHandler, toggleModal } from '@kepler.gl/actions';
import { AggregationLayer, Layer, LayerBaseConfig, VisualChannel } from '@kepler.gl/layers';
import { Datasets } from '@kepler.gl/table';
import { ColorUI, LayerVisConfig, NestedPartial } from '@kepler.gl/types';
type LayerConfiguratorProps = {
    layer: Layer;
    datasets: Datasets;
    layerTypeOptions: {
        id: string;
        label: string;
        icon: React.ElementType;
        requireData: boolean;
    }[];
    openModal: ActionHandler<typeof toggleModal>;
    updateLayerConfig: (newConfig: Partial<LayerBaseConfig>) => void;
    updateLayerType: (newType: string) => void;
    updateLayerVisConfig: (newVisConfig: Partial<LayerVisConfig>) => void;
    updateLayerVisualChannelConfig: (newConfig: Partial<LayerBaseConfig>, channel: string, newVisConfig?: Partial<LayerVisConfig>) => void;
    updateLayerColorUI: (prop: string, newConfig: NestedPartial<ColorUI>) => void;
    updateLayerTextLabel: (idx: number | 'all', prop: string, value: any) => void;
    disableTypeSelect?: boolean;
};
type AggregationSelectorProps = {
    channel: VisualChannel;
    layer: AggregationLayer;
    onChange: (val: Record<string, string | number | boolean | object | readonly (string | number | boolean | object)[] | null>, key: string) => void;
};
export declare const getLayerFields: (datasets: Datasets, layer: Layer) => import("@kepler.gl/types").Field[];
/** Return any to be able to customize the Dataset entity */
export declare const getLayerDataset: (datasets: Datasets, layer: Layer) => any;
export declare const getLayerConfiguratorProps: (props: LayerConfiguratorProps) => {
    layer: Layer;
    fields: import("@kepler.gl/types").Field[];
    onChange: (newConfig: Partial<LayerBaseConfig>) => void;
    setColorUI: (prop: string, newConfig: NestedPartial<ColorUI>) => void;
};
export declare const getVisConfiguratorProps: (props: LayerConfiguratorProps) => {
    layer: Layer;
    fields: import("@kepler.gl/types").Field[];
    onChange: (newVisConfig: Partial<LayerVisConfig>) => void;
    setColorUI: (prop: string, newConfig: NestedPartial<ColorUI>) => void;
};
export declare const getLayerChannelConfigProps: (props: LayerConfiguratorProps) => {
    layer: Layer;
    dataset: any;
    fields: import("@kepler.gl/types").Field[];
    onChange: (newConfig: Partial<LayerBaseConfig>, channel: string, newVisConfig?: Partial<LayerVisConfig>) => void;
    setColorUI: (prop: string, newConfig: NestedPartial<ColorUI>) => void;
};
declare function LayerConfiguratorFactory(SourceDataSelector: ReturnType<typeof SourceDataSelectorFactory>, VisConfigSlider: ReturnType<typeof VisConfigSliderFactory>, TextLabelPanel: ReturnType<typeof TextLabelPanelFactory>, LayerConfigGroup: ReturnType<typeof LayerConfigGroupFactory>, ChannelByValueSelector: ReturnType<typeof ChannelByValueSelectorFactory>, LayerColumnModeConfig: ReturnType<typeof LayerColumnModeConfigFactory>, LayerTypeSelector: ReturnType<typeof LayerTypeSelectorFactory>, VisConfigSwitch: ReturnType<typeof VisConfigSwitchFactory>, LayerColorSelector: ReturnType<typeof LayerColorSelectorFactory>, LayerColorRangeSelector: ReturnType<typeof LayerColorRangeSelectorFactory>, ArcLayerColorSelector: ReturnType<typeof ArcLayerColorSelectorFactory>, AggrScaleSelector: ReturnType<typeof AggrScaleSelectorFactory>, VectorTileLayerConfigurator: ReturnType<typeof VectorTileLayerConfiguratorFactory>, RasterTileLayerConfigurator: ReturnType<typeof RasterTileLayerConfiguratorFactory>): React.ComponentType<LayerConfiguratorProps>;
declare namespace LayerConfiguratorFactory {
    var deps: (typeof RasterTileLayerConfiguratorFactory | typeof VisConfigSwitchFactory | typeof LayerConfigGroupFactory | typeof VisConfigSliderFactory | typeof SourceDataSelectorFactory | typeof TextLabelPanelFactory | typeof ChannelByValueSelectorFactory | typeof LayerColumnModeConfigFactory | typeof LayerTypeSelectorFactory | typeof LayerColorSelectorFactory | typeof LayerColorRangeSelectorFactory | typeof ArcLayerColorSelectorFactory | typeof AggrScaleSelectorFactory | typeof VectorTileLayerConfiguratorFactory)[];
}
export default LayerConfiguratorFactory;
export declare const AggregationTypeSelector: ({ channel, layer, onChange }: AggregationSelectorProps) => React.JSX.Element;
