import { ButtonProps } from '../button';
import { Size } from '../common';
export interface SelectOptionItem {
    value: any;
    label?: React.ReactNode;
    icon?: React.ReactNode;
    currency?: string;
    note?: React.ReactNode;
    secondary?: React.ReactNode;
}
export interface SelectItem extends Partial<SelectOptionItem> {
    header?: React.ReactNode;
    separator?: boolean;
    disabled?: boolean;
    searchStrings?: string[];
}
export interface SelectItemWithPlaceholder extends SelectItem {
    placeholder?: string;
}
/**
 * No option or placeholder option is selected
 */
declare const DEFAULT_SELECTED_OPTION: null;
export interface SelectProps {
    placeholder?: string;
    id?: string;
    required?: boolean;
    disabled?: boolean;
    inverse?: boolean;
    dropdownRight?: `${Size.EXTRA_SMALL | Size.SMALL | Size.MEDIUM | Size.LARGE | Size.EXTRA_LARGE}`;
    dropdownWidth?: `${Size.SMALL | Size.MEDIUM | Size.LARGE}`;
    size?: `${Size.SMALL | Size.MEDIUM | Size.LARGE}`;
    block?: boolean;
    selected?: SelectOptionItem;
    /**
     * Search toggle
     * if `true` default search functionality being enabled (not case sensitive search in option labels & currency props)
     * if `function` you can define your own search function to implement custom search experience. This search function used while filtering the options array.
     */
    search?: boolean | ((option: SelectItemWithPlaceholder, searchValue: string) => boolean);
    options: SelectItem[];
    searchValue?: string;
    searchPlaceholder?: string;
    classNames?: Record<string, string>;
    dropdownUp?: boolean;
    buttonProps?: Extract<ButtonProps, {
        as?: 'button';
    }>;
    dropdownProps?: React.ComponentPropsWithoutRef<'ul'>;
    onChange: (value: SelectItem | typeof DEFAULT_SELECTED_OPTION) => void;
    onFocus?: React.FocusEventHandler<HTMLDivElement>;
    onBlur?: React.FocusEventHandler<HTMLDivElement>;
    /**
     * To have full control of your search value and response use `onSearchChange` function combined with `searchValue` and custom filtering on the options array.
     * DO NOT USE TOGETHER WITH `search` PROPERTY
     */
    onSearchChange?: (value: string) => void;
}
/**
 * @deprecated Use `SelectInput` instead (https://neptune.wise.design/blog/2023-11-28-adopting-our-new-selectinput)
 */
export default function Select({ placeholder, id, required, disabled, inverse, dropdownWidth, size, block, selected, search, onChange, onFocus, onBlur, options: defaultOptions, onSearchChange, searchValue: initSearchValue, searchPlaceholder, classNames: classNamesProp, dropdownUp, dropdownProps, buttonProps, }: SelectProps): import("react").JSX.Element;
export {};
//# sourceMappingURL=Select.d.ts.map