import type { StyleProp, TextStyle, ViewStyle, TextProps, ImageStyle, FlatListProps, } from 'react-native'; export type IDropdownRef = { open: () => void; close: () => void; }; export interface DropdownProps { ref?: | React.RefObject | React.MutableRefObject | null | undefined; testID?: string; itemTestIDField?: string; style?: StyleProp; containerStyle?: StyleProp; placeholderStyle?: StyleProp; selectedTextStyle?: StyleProp; selectedTextProps?: TextProps; itemContainerStyle?: StyleProp; itemTextStyle?: StyleProp; inputSearchStyle?: StyleProp; iconStyle?: StyleProp; maxHeight?: number; minHeight?: number; fontFamily?: string; iconColor?: string; activeColor?: string; data: T[]; value?: T | string | null | undefined; placeholder?: string; labelField: string; valueField: string; search?: boolean; searchPlaceholder?: string; disable?: boolean; autoScroll?: boolean; showsVerticalScrollIndicator?: boolean; dropdownPosition?: 'auto' | 'top' | 'bottom'; flatListProps?: Omit, 'renderItem' | 'data'>; keyboardAvoiding?: boolean; statusBarIsTranslucent?: boolean; backgroundColor?: string; confirmSelectItem?: boolean; accessibilityLabel?: string; itemAccessibilityLabelField?: string; inverted?: boolean; onChange: (item: T) => void; renderLeftIcon?: (visible?: boolean) => JSX.Element | null | undefined; renderRightIcon?: (visible?: boolean) => JSX.Element | null | undefined; renderItem?: (item: T, selected?: boolean) => JSX.Element | null | undefined; renderInputSearch?: ( onSearch: (text: string) => void ) => JSX.Element | null | undefined; onFocus?: () => void; onBlur?: () => void; searchQuery?: (keyword: string, labelValue: string) => boolean; onChangeText?: (search: string) => void; onConfirmSelectItem?: (item: T) => void; }