import type { ToNumber as Recipient } from '@ringcentral-integration/commons/modules/ComposeText'; import type { FunctionComponent, MouseEvent, ReactNode } from 'react'; export interface BaseRecipientsInputProps { enableTitle: boolean; currentLocale: string; formatContactPhone: (phoneNumber: string) => ReactNode; phoneSourceNameRenderer?: (entityType: string) => ReactNode; phoneTypeRenderer?: (phoneType: string) => ReactNode; } export interface BaseRecipientOptionProps extends BaseRecipientsInputProps, Recipient { splitter: string; } export interface RecipientInfoProps extends BaseRecipientOptionProps {} export interface RecipientPhoneProps extends BaseRecipientOptionProps {} export interface RendererOverrides { recipientInfoRenderer?: FunctionComponent; recipientPhoneRenderer?: FunctionComponent; } export interface RecipientOptionProps extends BaseRecipientOptionProps, RendererOverrides { active: boolean; onClick: (ev: MouseEvent) => void; onHover: (ev: MouseEvent) => void; } export interface DropdownListHandles { scrollUp: () => void; scrollDown: () => void; setScrollPosition: (scrollTop: number) => void; } export interface DropdownListProps extends BaseRecipientsInputProps, RendererOverrides { className?: string; visibility: boolean; addToRecipients: (item: Recipient) => void; recipientOptions: Recipient[]; setSelectedIndex: (index: number) => void; selectedIndex: number; } export interface RecipientsInputV2Handles { focus: () => void; blur: () => void; } export interface RecipientsInputV2Props extends BaseRecipientsInputProps { className?: string; recipients: Recipient[]; searchContactList: Recipient[]; contactInfoRenderer?: FunctionComponent; contactPhoneRenderer?: FunctionComponent; addToRecipients: (item: Recipient) => void; multiple?: boolean; label?: string; onInputChange: (newValue: string) => void; onInputClear: () => void; useRCUI?: boolean; value: string; removeFromRecipients: (phoneNumber: string) => void; recipientsClassName?: string; placeholder?: ReactNode; isLastInputFromDialpad?: boolean; }