import { IconPropSize } from '@consta/icons/Icon';
import { FieldPropSize } from '../FieldComponents';
import { SelectGroupDefault, SelectItemDefault, SelectPropGetGroupKey, SelectPropGetGroupLabel, SelectPropGetItemDisabled, SelectPropGetItemGroupKey, SelectPropGetItemKey, SelectPropGetItemLabel, SelectProps } from '.';
export declare const defaultGetItemKey: SelectPropGetItemKey<SelectItemDefault>;
export declare const defaultGetItemLabel: SelectPropGetItemLabel<SelectItemDefault>;
export declare const defaultGetItemGroupKey: SelectPropGetItemGroupKey<SelectItemDefault>;
export declare const defaultGetItemDisabled: SelectPropGetItemDisabled<SelectItemDefault>;
export declare const defaultGetGroupKey: SelectPropGetGroupKey<SelectGroupDefault>;
export declare const defaultGetGroupLabel: SelectPropGetGroupLabel<SelectGroupDefault>;
export declare const isMultipleParams: <ITEM, GROUP>(params: SelectProps<ITEM, GROUP, boolean>) => params is SelectProps<ITEM, GROUP, true>;
export declare const isNotMultipleParams: <ITEM, GROUP>(params: SelectProps<ITEM, GROUP, boolean>) => params is SelectProps<ITEM, GROUP, false>;
export declare function withDefaultGetters<ITEM = SelectItemDefault, GROUP = SelectGroupDefault, MULTIPLE extends boolean = false>(props: SelectProps<ITEM, GROUP, MULTIPLE>): {
    items: ITEM[];
    onChange: import("./types").SelectPropOnChange<ITEM, MULTIPLE>;
    disabled?: boolean;
    form?: import("../FieldComponents").FieldPropForm;
    dropdownForm?: "default" | "brick" | "round";
    size?: FieldPropSize;
    view?: import("../FieldComponents").FieldPropView;
    placeholder?: string;
    'aria-Label'?: string;
    status?: import("../FieldComponents").FieldPropStatus;
    isLoading?: boolean;
    dropdownClassName?: string;
    dropdownRef?: React.Ref<HTMLDivElement>;
    renderItem?: import("./types").SelectPropRenderItem<ITEM> | undefined;
    renderValue?: import("./types").SelectPropRenderValue<ITEM, MULTIPLE> | undefined;
    onFocus?: React.FocusEventHandler<HTMLInputElement>;
    onBlur?: React.FocusEventHandler<HTMLInputElement>;
    onCreate?: import("./types").SelectPropOnCreate;
    inputRef?: React.Ref<HTMLInputElement>;
    input?: boolean;
    inputValue?: string;
    inputDefaultValue?: string;
    onInput?: (value: string) => void;
    labelForCreate?: ((label: string | undefined) => React.ReactNode) | React.ReactNode;
    labelForEmptyItems?: string;
    multiple?: MULTIPLE | undefined;
    value?: import("./types").SelectPropValue<ITEM, MULTIPLE>;
    groups?: GROUP[] | undefined;
    getItemLabel?: SelectPropGetItemLabel<ITEM> | undefined;
    getItemKey?: SelectPropGetItemKey<ITEM> | undefined;
    getItemGroupKey?: SelectPropGetItemGroupKey<ITEM> | undefined;
    getItemDisabled?: SelectPropGetItemDisabled<ITEM> | undefined;
    getGroupLabel?: SelectPropGetGroupLabel<GROUP> | undefined;
    getGroupKey?: SelectPropGetGroupKey<GROUP> | undefined;
    virtualScroll?: boolean;
    onScrollToBottom?: (length: number) => void;
    onDropdownOpen?: (isOpen: boolean) => void;
    dropdownOpen?: boolean;
    ignoreOutsideClicksRefs?: ReadonlyArray<React.RefObject<HTMLElement>>;
    clearButton?: boolean;
    iconClear?: import("@consta/icons/Icon").IconComponent;
    selectAll?: (MULTIPLE extends true ? boolean : never) | undefined;
    selectAllLabel?: string;
} & Omit<import("react").HTMLAttributes<HTMLDivElement>, "css" | "placeholder" | "onFocus" | "onBlur" | "onChange" | "onInput" | "size" | "view" | "form" | "input" | "status" | "disabled" | "value" | "multiple" | "inputRef" | "items" | "dropdownForm" | "dropdownClassName" | "dropdownRef" | "isLoading" | "labelForEmptyItems" | "renderItem" | "renderValue" | "groups" | "getItemLabel" | "getItemKey" | "getItemGroupKey" | "getItemDisabled" | "getGroupLabel" | "getGroupKey" | "onScrollToBottom" | "labelForCreate" | "inputValue" | "selectAll" | "onDropdownOpen" | "dropdownOpen" | "ignoreOutsideClicksRefs" | "virtualScroll" | "inputDefaultValue" | "clearButton" | "iconClear" | "onCreate" | "aria-Label" | "selectAllLabel"> & import("react").RefAttributes<HTMLDivElement> & (ITEM extends {
    label: SelectItemDefault["label"];
} ? {} : {
    getItemLabel: SelectPropGetItemLabel<ITEM>;
}) & (ITEM extends {
    id: SelectItemDefault["id"];
} ? {} : {
    getItemKey: SelectPropGetItemKey<ITEM>;
}) & (GROUP extends {
    label: SelectGroupDefault["label"];
} ? {} : {
    getGroupLabel: SelectPropGetGroupLabel<GROUP>;
}) & (GROUP extends {
    id: SelectGroupDefault["id"];
} ? {} : {
    getGroupKey: SelectPropGetGroupKey<GROUP>;
}) & {
    getItemLabel: SelectPropGetItemLabel<SelectItemDefault> | SelectPropGetItemLabel<ITEM>;
    getItemKey: SelectPropGetItemKey<SelectItemDefault> | SelectPropGetItemKey<ITEM>;
    getItemGroupKey: SelectPropGetItemGroupKey<SelectItemDefault> | SelectPropGetItemGroupKey<ITEM>;
    getItemDisabled: SelectPropGetItemDisabled<SelectItemDefault> | SelectPropGetItemDisabled<ITEM>;
    getGroupLabel: SelectPropGetGroupLabel<SelectGroupDefault> | SelectPropGetGroupLabel<GROUP>;
    getGroupKey: SelectPropGetGroupKey<SelectGroupDefault> | SelectPropGetGroupKey<GROUP>;
};
export declare const clearSizeMap: Record<FieldPropSize, IconPropSize>;
export declare const iconSizeMap: Record<FieldPropSize, IconPropSize>;
