import * as React from 'react' import * as ReactNative from 'react-native' type IconProps = { name: string size?: number [x: string]: any } export interface Styles { container?: ReactNative.StyleProp modalWrapper?: ReactNative.StyleProp selectToggle?: ReactNative.StyleProp selectToggleText?: ReactNative.StyleProp item?: ReactNative.StyleProp subItem?: ReactNative.StyleProp itemText?: ReactNative.StyleProp selectedItemText?: ReactNative.StyleProp selectedSubItemText?: ReactNative.StyleProp subItemText?: ReactNative.StyleProp searchBar?: ReactNative.StyleProp center?: ReactNative.StyleProp separator?: ReactNative.StyleProp subSeparator?: ReactNative.StyleProp chipsWrapper?: ReactNative.StyleProp chipContainer?: ReactNative.StyleProp chipText?: ReactNative.StyleProp chipIcon?: ReactNative.StyleProp searchTextInput?: ReactNative.StyleProp scrollView?: ReactNative.StyleProp button?: ReactNative.StyleProp cancelButton?: ReactNative.StyleProp confirmText?: ReactNative.StyleProp toggleIcon?: ReactNative.StyleProp selectedItem?: ReactNative.StyleProp selectedSubItem?: ReactNative.StyleProp backdrop?: ReactNative.StyleProp listContainer?: ReactNative.StyleProp } export interface Colors { primary?: string success?: string cancel?: string text?: string subText?: string selectToggleTextColor?: string searchPlaceholderTextColor?: string searchSelectionColor?: string chipColor?: string itemBackground?: string subItemBackground?: string disabled?: string } export interface SectionedMultiSelectProps { single?: boolean selectedItems?: any[] items?: ItemType[] displayKey?: string uniqueKey: string subKey?: string onSelectedItemsChange: (items: any[]) => void showDropDowns?: boolean showChips?: boolean readOnlyHeadings?: boolean selectText?: string selectedText?: string | (() => void) renderSelectText?: (props: this) => void confirmText?: string hideConfirm?: boolean styles?: Styles colors?: Colors searchPlaceholderText?: string noResultsComponent?: React.ReactNode loadingComponent?: React.ReactNode loading?: boolean subItemFontFamily?: object itemFontFamily?: object searchTextFontFamily?: object confirmFontFamily?: object showRemoveAll?: boolean removeAllText?: string modalSupportedOrientations?: ReactNative.ModalProps['supportedOrientations'] modalAnimationType?: string modalWithSafeAreaView?: boolean modalWithTouchable?: boolean hideSearch?: boolean footerComponent?: React.ReactNode stickyFooterComponent?: React.ReactNode selectToggleIconComponent?: React.ReactNode cancelIconComponent?: React.ReactNode searchIconComponent?: React.ReactNode selectedIconComponent?: React.ReactNode unselectedIconComponent?: React.ReactNode dropDownToggleIconUpComponent?: React.ReactNode dropDownToggleIconDownComponent?: React.ReactNode chipRemoveIconComponent?: React.ReactNode selectChildren?: boolean highlightChildren?: boolean onSelectedItemObjectsChange?: (items: ItemType[]) => void itemNumberOfLines?: number selectLabelNumberOfLines?: number showCancelButton?: boolean hideSelect?: boolean onConfirm?: () => void onCancel?: () => void headerComponent?: React.ReactNode alwaysShowSelectText?: boolean searchAdornment?: (searchText: string) => void expandDropDowns?: boolean animateDropDowns?: boolean customLayoutAnimation?: object onChangeSearchText?: (searchTerm: string) => void filterItems?: (searchTerm: string) => void onToggleSelector?: (selected: boolean) => void noItemsComponent?: React.ReactNode customChipsRenderer?: (chipProperties: { colors: Colors displayKey: string items: ItemType[] selectedItems: any[] styles: Styles subKey: string uniqueKey: string }) => void chipsPosition?: 'top' | 'bottom' autoFocus?: boolean iconKey?: string disabled?: boolean selectedIconOnLeft?: boolean parentChipsRemoveChildren?: boolean hideChipRemove?: boolean IconRenderer: React.ReactNode itemsFlatListProps?: Omit< ReactNative.FlatListProps, 'data' | 'renderItem' > subItemsFlatListProps?: Omit< ReactNative.FlatListProps, 'data' | 'renderItem' > icons?: Partial<{ search: IconProps arrowUp: IconProps arrowDown: IconProps close: IconProps check: IconProps cancel: IconProps }> } export default class SectionedMultiSelect extends React.Component< SectionedMultiSelectProps > { _toggleSelector: () => void _removeAllItems: () => void _removeItem: (item: ItemType) => void _selectAllItems: () => void _findItem: (id: any) => ItemType | undefined _itemSelected: (item: ItemType) => boolean _getSearchTerm: () => string _submitSelection: () => void _cancelSelection: () => void }