import * as React from 'react';
import { AccessLevel, AdaptableSystemIconName } from '../../types';
export type SelectOption<SelectValue extends unknown> = {
    label: React.ReactNode;
    icon?: AdaptableSystemIconName;
    value: SelectValue;
    isDisabled?: boolean;
};
export type SelectProps<SelectValue extends unknown, IsMulti extends boolean = false> = {
    options: readonly SelectOption<SelectValue>[] | SelectOption<SelectValue>[];
    disabled?: boolean;
    menuPosition?: 'fixed' | 'absolute';
    menuPlacement?: 'auto' | 'bottom' | 'top';
    searchable?: boolean;
    isClearable?: boolean;
    isMulti?: IsMulti;
    onChange: (value: IsMulti extends true ? SelectValue[] : SelectValue) => void;
    value: IsMulti extends true ? SelectValue[] : SelectValue;
    placeholder?: string;
    'data-name'?: string;
    'data-id'?: string;
    renderSingleValue?: (option: SelectOption<SelectValue>) => React.ReactNode;
    className?: string;
    isLoading?: boolean;
    onFocus?: () => void;
    accessLevel?: AccessLevel;
    style?: React.CSSProperties;
    onInputChange?: (value: string) => void;
    size?: 'small' | 'normal';
    isCreatable?: boolean;
    menuPortalTarget?: HTMLElement;
};
export declare const Select: <SelectValue extends unknown, IsMulti extends boolean = false>(props: SelectProps<SelectValue, IsMulti>) => JSX.Element;
