import { RegisterOptions } from 'react-hook-form';
import { StylesConfig } from 'react-select';
import { TransactionPage, TransactionStatus } from '@zeniai/client-analytics';
import { ID, TransactionLineRecommendationFieldTypes } from '@zeniai/client-epic-state';
import { TooltipPlacement } from '../../common/tooltipVariants/types';
import { AncestorMetadata } from '../../reportTree/reportTreeTypes';
import { DisableMode } from '../common/common';
/**
 * Component & its Props
 */
interface OptionTypeBase {
    [key: string]: any;
}
export interface TreeViewOptions {
    ancestorMetadata?: AncestorMetadata[];
    coaId?: string;
    collapsed?: boolean;
    depth?: number;
    hasChildren?: boolean;
    hasSiblings?: boolean;
    isLastNode?: boolean;
    isLeaf?: boolean;
    recommendedOptionIndex?: number;
}
export interface OptionType extends OptionTypeBase, TreeViewOptions {
    label: string;
    value: string;
    additionalNote?: string;
    chainOfThought?: string[];
    confidencePercentage?: number;
    displayName?: string;
    isDisabled?: boolean;
    isOptionRecommended?: boolean;
    recommendationReason?: string;
}
export interface GroupedOption {
    label: string;
    options: OptionType[];
}
export interface GroupedSingleSelectFieldValueWithCOT {
    allOptions: GroupedOption[];
    selectedOption?: string;
    selectedOptionLabel?: string;
}
interface TooltipProp {
    sticky: boolean;
    text: string;
}
export type MenuOptionPresentation = "default" | "typePill";
export interface GroupedSingleSelectFieldWithCOTProps {
    defaultValue: GroupedSingleSelectFieldValueWithCOT;
    name: string;
    pageSource: TransactionPage;
    showCOT: boolean;
    transactionStatus: TransactionStatus | null;
    type: TransactionLineRecommendationFieldTypes;
    additionalLabelInfo?: string;
    allowEmpty?: boolean;
    autoFocus?: boolean;
    customPlaceholderColor?: string;
    customPlaceholderString?: string;
    customStyleConfig?: StylesConfig<OptionType, false>;
    isDisabled?: DisableMode;
    menuIsOpen?: boolean;
    menuOptionPresentation?: MenuOptionPresentation;
    menuPlacement?: "top" | "bottom" | "auto";
    menuPortal?: HTMLElement | null;
    noOptionsMessage?: {
        line1: string;
        line2: string;
    };
    placeholder?: string;
    registerOptions?: RegisterOptions;
    showDownChevronWithValue?: boolean;
    showEmptyState?: boolean;
    style?: React.CSSProperties;
    tooltip?: TooltipProp;
    tooltipPosition?: TooltipPlacement;
    tooltipWidth?: number;
    disableCurrentOption?: (option: string) => boolean;
    getStyles?: (_isDropdownOpen: boolean) => React.CSSProperties;
    onCOTView?: (fieldType: TransactionLineRecommendationFieldTypes, recommendationSource?: string) => void;
    onMenuClose?: () => void;
    valueToId?: (value: string) => ID | undefined;
    valueToInfo?: (value: string) => string;
}
export declare const GroupedSingleSelectFieldWithCOT: ({ name, registerOptions, defaultValue, isDisabled, style, placeholder, autoFocus, menuIsOpen, pageSource, type, transactionStatus, showEmptyState, additionalLabelInfo, customStyleConfig, customPlaceholderString, allowEmpty, tooltip, noOptionsMessage, customPlaceholderColor, menuPortal, showCOT, tooltipPosition, tooltipWidth, disableCurrentOption, valueToInfo, valueToId, onMenuClose, getStyles, menuPlacement, onCOTView, showDownChevronWithValue, menuOptionPresentation, }: GroupedSingleSelectFieldWithCOTProps) => import("react/jsx-runtime").JSX.Element;
/**
 * internal Styled components
 */
export declare const CustomTooltip: ({ children, title, }: {
    children: string;
    title: string;
}) => import("react/jsx-runtime").JSX.Element;
export declare const GroupedSingleSelectField: ({ name, registerOptions, defaultValue, isDisabled, style, placeholder, autoFocus, menuIsOpen, pageSource, type, transactionStatus, showEmptyState, additionalLabelInfo, customStyleConfig, customPlaceholderString, allowEmpty, tooltip, noOptionsMessage, customPlaceholderColor, menuPortal, showCOT, tooltipPosition, tooltipWidth, disableCurrentOption, valueToInfo, valueToId, onMenuClose, getStyles, menuPlacement, onCOTView, showDownChevronWithValue, menuOptionPresentation, }: GroupedSingleSelectFieldWithCOTProps) => import("react/jsx-runtime").JSX.Element;
export {};
