import * as React from 'react'; import { OverridesDropdown as BaseuiDropdownOverrides, DropdownProps as BaseDropdownProps, Option, Options, SelectOverrides as BaseuiSelectOverrides, SelectProps as BaseuiSelectProps, State, StateReducer } from '../baseui/select'; import { SELECT_ALL_ID } from '../baseui/select/constants'; import { STATE_CHANGE_TYPE } from './constants'; import { Override } from '../overrides'; import { TagProps } from '../tag'; import { Intent, SpacewebComponentProps } from '../types'; import { PopoverProps } from '../popover/types'; import { ValueOf } from '../utility-types'; import { Value } from '../baseui/select/types'; /** * lg size is deprecated. Please use md. */ export declare type Size = 'xxxs' | 'xs' | 'sm' | 'md' | 'lg'; export declare type Type = 'select' | 'search'; declare type OverridableComponent = keyof Omit | 'Menu' | 'MenuItem' | 'NoResults' | 'Divider' | 'ListItemText' | 'OverlayContentContainer'; export declare type SelectActions = { setDropdownOpen?: (shouldOpen: boolean) => void; }; export declare type OnChangeParams = { value: Value; option?: Option; type?: ValueOf; }; export declare type BaseSelectProps = SpacewebComponentProps> & { onChange?: (params: OnChangeParams) => unknown; intent?: Intent; overrides?: { [key in OverridableComponent]?: Override; }; type?: Type; hideSelectAll?: boolean; size?: Size; captureScroll?: boolean; placement?: PopoverProps['placement']; popoverMinWidth?: string; createOption?: (label: string) => Options | Promise; onPaste?: (event: React.ClipboardEvent) => Options | undefined; virtual?: boolean; ignoreBoundary?: boolean; delimiter?: string; clearAsOption?: boolean; clearAsOptionLabel?: string; selectOnTab?: boolean; }; declare type Merge = Omit & B; export declare type OverlaySelectProps = Merge; export declare type MobileSelectProps = Merge; export declare type SelectProps = BaseSelectProps | OverlaySelectProps | MobileSelectProps; export declare type StatefulSelectProps = SelectProps & { initialState?: State; stateReducer?: StateReducer; }; export declare type SharedProps = { $clearable?: boolean; $creatable?: boolean; $disabled?: boolean; $intent?: Intent; $isFocused?: boolean; $isLoading?: boolean; $isOpen?: boolean; $isPseudoFocused?: boolean; $multi?: boolean; $required?: boolean; $searchable?: boolean; $type?: Type; $width?: string; $maxHeight?: string; $isHighlighted?: boolean; $selected?: boolean; $isEmpty?: boolean; $size?: Size; $selectSize?: Size; }; export declare type DropdownProps = Omit & { overrides?: { [key in keyof BaseuiDropdownOverrides]?: Override; }; type?: Type; }; export declare const CLEAR_OPTION_ID = "__clear"; declare type RemoveValue = () => void; export declare type MultiValueProps = Omit & SharedProps & { $isContainerFocused?: boolean; $valueByIdMap: Record; $valueKey: string; value: Option; removeValue: RemoveValue; selectSize: Size; overrides?: { Tag?: Override<{ variant: 'light'; intent: 'default'; className: string; onActionClick: RemoveValue; } & Record>; }; }; export { SELECT_ALL_ID }; export type { Option, Value, Options, Optgroups, StateReducer, ControlRef, ImperativeMethods, AutosizeInputProps, StatefulContainerProps, SelectState, AutosizeInputState, State as StatefulContainerState, } from '../baseui/select';