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<HTMLElement>;
    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<HTMLInputElement>) => 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;
}
