import * as React from 'react';
import { Config, DataSource, Matcher, MutliSelectStyles, Option, Value, OperatorDisplay, SourceItem, defaultComparison, stringComparisons, numberComparisons, Nemonic, FreTextFunc } from './types';
import { isUnique } from './utils';
import { ComparisonItem } from './types/Config';
interface MultiSelectProps {
    matchers?: Matcher[];
    dataSources: DataSource[];
    functions?: Nemonic[];
    defaultComparison?: string;
    comparisonDescriptons?: ComparisonItem[];
    and?: string;
    or?: string;
    defaultItemLimit?: number;
    operators?: 'Simple' | 'AgGrid' | 'Complex';
    onMatchersChanged?: (matchers: Matcher[]) => void;
    onComplete?: (matchers: Matcher[], func?: string) => void;
    onCompleteError?: (func: string, errorMessage: string, missingFields?: string[]) => void;
    clearIcon?: React.ReactElement;
    maxDropDownHeight?: number;
    minStaticListHeight?: number;
    maxStaticListHeight?: number;
    searchStartLength?: number;
    showCategories?: boolean;
    categoryPosition?: 'top' | 'left';
    hideToolTip?: boolean;
    allowFreeText?: boolean;
    pasteMatchTimeout?: number;
    pasteFreeTextAction?: FreTextFunc;
    promiseDelay?: number;
    styles?: MutliSelectStyles;
}
declare const MultiSelect: React.FC<MultiSelectProps>;
export type { Config, DataSource, Matcher, MutliSelectStyles, Option, Value, OperatorDisplay, SourceItem, Nemonic, FreTextFunc, };
export { defaultComparison, stringComparisons, numberComparisons, isUnique };
export default MultiSelect;
