import React from 'react';
import { Layer } from '@kepler.gl/layers';
import { ColorRange, HexColor, MapState } from '@kepler.gl/types';
import { Reset } from './icons';
export declare function ResetColorLabelFactory(): import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<Partial<import("./icons").BaseProps> & React.RefAttributes<Reset>, never>> & Omit<typeof Reset, keyof React.Component<any, {}, any>>;
export type LegendRowEditorProps = {
    color: string;
    label: string;
    customLabel?: string;
    onEdit: (newValue: string) => void;
    disabled?: boolean;
};
export declare function LegendRowEditorFactory(): React.FC<LegendRowEditorProps>;
export declare function LegendColorDisplayFactory(): ({ color }: {
    color: any;
}) => React.JSX.Element;
export type LegendRowProps = {
    label: string;
    customLabel?: string;
    displayLabel?: boolean;
    color: string;
    onUpdateLabel?: (selectedColor: string, newLabel: string) => void;
    onResetLabel?: (color: string) => void;
    disableEdit?: boolean;
};
export declare function LegendRowFactory(LegendColorDisplay: ReturnType<typeof LegendColorDisplayFactory>, LegendRowEditor: ReturnType<typeof LegendRowEditorFactory>, ResetColorLabel: ReturnType<typeof ResetColorLabelFactory>): React.FC<LegendRowProps>;
export declare namespace LegendRowFactory {
    var deps: (typeof ResetColorLabelFactory | typeof LegendColorDisplayFactory | typeof LegendRowEditorFactory)[];
}
export declare function useLayerColorLegends(layer: ColorLegendProps['layer'], scaleType: ColorLegendProps['scaleType'], domain: ColorLegendProps['domain'], range: ColorLegendProps['range'], isFixed: ColorLegendProps['isFixed'], fieldType: ColorLegendProps['fieldType'], labelFormat: ColorLegendProps['labelFormat'], mapState: ColorLegendProps['mapState']): Legend[];
export type ColorLegendProps = {
    layer: Layer;
    scaleType: string;
    domain: number[] | string[];
    fieldType?: string | null;
    range?: ColorRange | null;
    labelFormat?: (n: any) => string;
    displayLabel?: boolean;
    disableEdit?: boolean;
    mapState?: MapState;
    isFixed?: boolean;
    isExpanded?: boolean;
    onUpdateColorLegend?: (colorLegends: {
        [key: HexColor]: string;
    }) => void;
};
export type Legend = {
    data: string;
    label: string;
    override?: boolean;
};
declare function ColorLegendFactory(LegendRow: ReturnType<typeof LegendRowFactory>): React.NamedExoticComponent<ColorLegendProps>;
declare namespace ColorLegendFactory {
    var deps: (typeof LegendRowFactory)[];
}
export default ColorLegendFactory;
