import * as React from 'react';
import { BaseControlProps } from '../_Common/BaseControl/BaseControl';
export declare type ReturnType = 'id' | 'full';
export interface UpSelectOption {
    id: number;
    text: string;
    icon?: string;
}
interface DataSource {
    id?: string;
    text?: string;
    endPoint?: string;
    query?: string;
    queryParameterName?: string;
    getExtraParams?: () => any;
    delay?: number;
    handleResponse?: (response: any) => Array<any>;
    fetchData?: (input: string, defaultParameters?: {
        [key: string]: string;
    }) => Promise<any>;
    defaultParameters?: {
        [key: string]: string;
    };
}
export interface UpSelectProps extends BaseControlProps<any> {
    default: any;
    multiple?: boolean;
    data?: any;
    isLoading?: boolean;
    placeholder?: string;
    loadingPlaceholder?: string;
    allowClear?: boolean;
    allowCreate?: boolean;
    minimumInputLength?: number;
    dataSource?: DataSource;
    filterOptions?: (option: object, filter: string) => boolean;
    valueKey?: string;
    labelKey?: string;
    autoload?: boolean;
    noResultsText?: string;
    clearAllText?: string;
    clearValueText?: string;
    addLabelText?: string;
    searchPromptText?: string;
    promptTextCreator?: (label: string) => string;
    isOptionUnique?: (option: object, options: Array<object>, labelKey: string, valueKey: string) => boolean;
    onNewOptionClick?: (option: any) => void;
    optionRenderer?: React.StatelessComponent<UpSelectOption>;
    valueRenderer?: React.StatelessComponent<UpSelectOption>;
    dataFor?: string;
    returnType?: ReturnType;
    autoFocus?: boolean;
    backspaceRemovesValue?: boolean;
    blurInputOnSelect?: boolean;
    captureMenuScroll?: boolean;
    closeMenuOnSelect?: boolean | EventListener;
    closeMenuOnScroll?: boolean | EventListener;
    delimiter?: string;
    escapeClearsValue?: boolean;
    formatGroupLabel?: (group: any) => React.ReactNode;
    formatOptionLabel?: (option: Object, optionContext: FormatOptionContext) => React.ReactNode;
    formatMinimumInputLenghMessage?: (minimumInputLength: number) => string;
    hideSelectedOptions?: boolean;
    id?: string;
    inputId?: string;
    isOptionDisabled?: (option: Object, options: Array<Object>) => boolean;
    isOptionSelected?: (option: Object, options: Array<Object>) => boolean;
    isRtl?: boolean;
    isSearchable?: boolean;
    minMenuHeight?: number;
    maxMenuHeight?: number;
    menuPlacement?: MenuPlacement;
    menuShouldBlockScroll?: boolean;
    menuShouldScrollIntoView?: boolean;
    onBlur?: (event: Event) => void;
    onFocus?: (event: Event) => void;
    onKeyDown?: (event: Event) => void;
    onMenuScrollToTop?: (event: Event) => void;
    onMenuScrollToBottom?: (event: Event) => void;
    openMenuOnFocus?: boolean;
    openMenuOnClick?: boolean;
    allowCreateWhileLoading?: boolean;
    formatCreateLabel?: (inputValue: string) => React.ReactNode;
    isValidNewOption?: (inputValue: any, selectValue: any, selectOptions: any) => boolean;
    getNewOptionData?: (inputValue: any, optionLabel: any) => object;
    onCreateOption?: (inputValue: string) => void;
    createOptionPosition?: 'first' | 'last';
    className?: string;
    floatingLabel?: string;
}
export declare type MenuPlacement = "auto" | "bottom" | "top";
export declare type FormatOptionContext = {
    context: "menu" | "value";
    inputValue: string;
    selectValue: Object | Array<Object> | null | undefined;
};
export interface UpSelectStyledProps {
}
export {};
