import * as React from 'react'; import TooltipOptions from '../tooltip/tooltipoptions'; import { CSSTransitionProps } from '../csstransition'; import { IconType } from '../utils'; import { VirtualScrollerProps } from '../virtualscroller'; type MultiSelectOptionGroupTemplateType = React.ReactNode | ((option: any, index: number) => React.ReactNode); type MultiSelectItemTemplateType = React.ReactNode | ((option: any) => React.ReactNode); type MultiSelectSelectedItemTemplateType = React.ReactNode | ((value: any) => React.ReactNode); type MultiSelectEmptyFilterMessageType = React.ReactNode | ((props: MultiSelectProps) => React.ReactNode); type MultiSelectDisplayType = 'comma' | 'chip'; interface MultiSelectHeaderCheckboxChangeParams { originalEvent: React.FormEvent; checked: boolean; } interface MultiSelectPanelHeaderTemplateParams { className: string; checkboxElement: HTMLElement; checked: boolean; onChange(e: MultiSelectHeaderCheckboxChangeParams): void; filterElement: JSX.Element; closeElement: JSX.Element; closeElementClassName: string; closeIconClassName: string; onCloseClick(event: React.MouseEvent): void; element: JSX.Element; props: MultiSelectProps; } type MultiSelectPanelHeaderTemplateType = React.ReactNode | ((e: MultiSelectPanelHeaderTemplateParams) => React.ReactNode); type MultiSelectPanelFooterTemplateType = React.ReactNode | ((props: MultiSelectProps, hide: () => void) => React.ReactNode); type MultiSelectOptionDisabledType = string | ((option: any) => boolean); type MultiSelectAppendToType = 'self' | HTMLElement | undefined | null; interface MultiSelectChangeTargetOptions { name: string; id: string; value: any; } interface MultiSelectChangeParams { originalEvent: React.SyntheticEvent; value: any; stopPropagation(): void; preventDefault(): void; target: MultiSelectChangeTargetOptions; } interface MultiSelectFilterParams { originalEvent: React.SyntheticEvent; filter: string; } interface MultiSelectAllParams { originalEvent: React.SyntheticEvent; checked: boolean; } export interface MultiSelectProps { id?: string; inputRef?: React.Ref; name?: string; value?: any; options?: any[]; optionLabel?: string; optionValue?: string; optionDisabled?: MultiSelectOptionDisabledType; optionGroupLabel?: string; optionGroupChildren?: string; optionGroupTemplate?: MultiSelectOptionGroupTemplateType; display?: MultiSelectDisplayType; style?: object; className?: string; panelClassName?: string; panelStyle?: object; virtualScrollerOptions?: VirtualScrollerProps; scrollHeight?: string; placeholder?: string; fixedPlaceholder?: boolean; disabled?: boolean; showClear?: boolean; filter?: boolean; filterBy?: string; filterMatchMode?: string; filterPlaceholder?: string; filterLocale?: string; emptyFilterMessage?: MultiSelectEmptyFilterMessageType; resetFilterOnHide?: boolean; tabIndex?: number; dataKey?: string; inputId?: string; appendTo?: MultiSelectAppendToType; tooltip?: string; tooltipOptions?: TooltipOptions; maxSelectedLabels?: number; selectionLimit?: number; selectedItemsLabel?: string; ariaLabelledBy?: string; itemTemplate?: MultiSelectItemTemplateType; selectedItemTemplate?: MultiSelectSelectedItemTemplateType; panelHeaderTemplate?: MultiSelectPanelHeaderTemplateType; panelFooterTemplate?: MultiSelectPanelFooterTemplateType; transitionOptions?: CSSTransitionProps; dropdownIcon?: IconType; removeIcon?: IconType; showSelectAll?: boolean; selectAll?: boolean; onChange?(e: MultiSelectChangeParams): void; onFocus?(event: React.FocusEvent): void; onBlur?(event: React.FocusEvent): void; onShow?(): void; onHide?(): void; onFilter?(e: MultiSelectFilterParams): void; onSelectAll?(e: MultiSelectAllParams): void; } export declare class MultiSelect extends React.Component { }