import React, { ComponentType } from 'react';
import { Field, TooltipField } from '@kepler.gl/types';
import FieldTokenFactory from '../common/field-token';
export type FieldListItemFactoryProps = {
    value: Field;
    displayOption: (field: Field) => string;
};
export declare function FieldListItemFactoryFactory(FieldToken: any): (showToken?: boolean) => ({ value, displayOption }: FieldListItemFactoryProps) => React.JSX.Element;
export declare namespace FieldListItemFactoryFactory {
    var deps: (typeof FieldTokenFactory)[];
}
export type MinimalField = {
    name: string;
    displayName: string;
    format: string;
    type?: string;
};
export type FieldType = string | TooltipField | Field;
export type FieldValue = string | {
    name: string;
} | string[] | {
    name: string;
}[];
export type FieldSelectorProps<Option extends MinimalField> = {
    id?: string;
    fields: Option[];
    onSelect: (items: ReadonlyArray<string | number | boolean | object> | string | number | boolean | object | null) => void;
    value?: FieldValue | null;
    filterFieldTypes?: string | string[];
    inputTheme?: string;
    placement?: string;
    placeholder?: string;
    erasable?: boolean;
    disabled?: boolean;
    error?: boolean;
    multiSelect?: boolean;
    closeOnSelect?: boolean;
    showToken?: boolean;
    suggested?: Option[] | null;
    CustomChickletComponent?: ComponentType<any>;
    size?: string;
    reorderItems?: (newOrder: any) => void;
    className?: string;
};
declare function FieldSelectorFactory(FieldListItemFactory: ReturnType<typeof FieldListItemFactoryFactory>): ComponentType<FieldSelectorProps<MinimalField>>;
declare namespace FieldSelectorFactory {
    var deps: (typeof FieldListItemFactoryFactory)[];
}
export default FieldSelectorFactory;
