import type { StyleProp, TextStyle, ViewStyle } from 'react-native'; export type StyleObj = StyleProp; export interface Item { label: string; value: string; } export type CloseModalEvent = { onClose: () => void; }; export type CancelModalEvent = { onCancel: () => void; }; export type OpenModalEvent = { onOpen: () => void; }; export type SelectItemEvent = { onSelect: () => void; }; export type CloseModalComponentProps = CloseModalEvent; interface TextProp { text: string; } export type CancelModalComponentProps = TextProp & CancelModalEvent; export type PressableComponentProps = Partial & OpenModalEvent; export type ModalHeaderComponentProps = CancelModalEvent & CloseModalEvent & { title?: string; }; export type EmptyIndicatorComponentProps = TextProp; export type ModalItemComponentProps = SelectItemEvent & { item: Item; index: number; focused: boolean; }; export type ModalSelectBaseProps = { items: Item[]; value: string; onChange: (value: string) => void; }; export type ModalSelectComponents = { closeModalComponent?: React.FC; cancelModalComponent?: React.FC; pressableComponent?: React.FC; modalHeaderComponent?: React.FC; emptyIndicatorComponent?: React.FC; modalItemComponent?: React.FC; }; export type ModalSelectStyles = { modalStyle?: StyleProp; }; export type ModalSelectProps = ModalSelectBaseProps & ModalSelectComponents & ModalSelectStyles & { testID?: string; placeholder?: string; emptyIndicatorText?: string; closeModalText?: string; cancelTouchableText?: string; };