import { ReactNode, RefObject } from 'react'; export interface NlpChip { name: string; isSelected: boolean; } export interface NlpChipsAccordionProps { chipOptionList: NlpChip[]; selectedChips: (selected: NlpChip[]) => void; optionZIndex: number; inputRef: RefObject; ChipsAccordionWidth?: string; } export interface SelectProps { label?: string; rightIcon?: string; leftIcon?: string; showLabel?: boolean; onHelpIconClick?: () => void; webServiceClick?: () => void; aiIconClick?: () => void; rightIconColor: string; optionsList: any[]; selectedOption?: NlpRenderOption; containerWidth?: string | number; onChange: (option: React.ChangeEvent) => void; errorMsg?: string; className?: string; optionZIndex?: number; disabled?: boolean; borderRadius?: boolean; showBorder?: boolean; required?: boolean; value: string; onSelect: (e: any) => void; chipOptionList?: NlpChip[]; selectedChips?: any; loadMoreOptions?: () => void; isWebservice?: boolean; closeInputOnOutsideClick?: () => void; tooltipText?: string; ChipsAccordionWidth?: string; } export interface DrowdownPosition { positionX: number; positionY: number; width: number; fromBottom: number; } export interface SelectState { isInputFocused: boolean; isIconClick: boolean; showOptions: boolean; option: string; dropdownPosition: DrowdownPosition; } export type SelectAction = { type: 'FOCUS_INPUT'; } | { type: 'BLUR_INPUT'; payload: { option: NlpRenderOption['projectId']; }; } | { type: 'MOUSE_ENTER'; } | { type: 'MOUSE_LEAVE'; } | { type: 'UPDATE_DROPDOWN_POSITION'; payload: { positionX: number; positionY: number; width: number; fromBottom: number; }; } | { type: 'UPDATE_OPTION'; payload: string; } | { type: 'UPDATE_OPTION_LIST'; payload: any[]; } | { type: 'SHOW_ERROR'; payload: { option: NlpRenderOption['projectId']; }; }; export interface NlpRenderOption { displayName: string | ReactNode; projectId: string; nlpType: string; platform: string; disabled?: boolean; videoSrc?: string; nlpName?: string; name?: string; }