/* eslint-disable @typescript-eslint/no-explicit-any */
import { TriggerTrigger } from "@/utils/trigger";
import React, { ReactNode, SyntheticEvent } from "react";


export interface AutocompleteOptionData {
  id:any;
  value: string;
  label: string;
}

export interface AutocompleteWidgetProps {

  id: string;
  label: string;
  name: string;
  manualOptions: any;
  styles: React.CSSProperties;
  updateComponentRuntimeProps:any;
  triggerEventHandler:any;
  handleUpdateMultiExecutionResult:any;
  currentIndex:number;
  linkWidgetDisplayName:any;
  displayName?:string;
  freeSolo?:boolean;
  updateComponentHeight?:any

  required?:boolean;
  tooltipText?:string;

  handleUpdateDsl: any,
  deleteComponentRuntimeProps:any,
    autoAlignPopupWidth?: boolean
  inputAsOption?: boolean
  allowClear?: boolean
  labelInValue?: boolean
  trigger?: TriggerTrigger
  defaultPopupVisible?: boolean
  disabled?: boolean
  error?: boolean
  loading?: boolean
  popupVisible?: boolean
  defaultInputValue?: string
  placeholder?: string
  size?: any
  addBefore?: ReactNode
  addAfter?: ReactNode
  prefix?: ReactNode | string
  suffixIcon?: ReactNode
  defaultValue?: any
  showSearch?: boolean
  value?: any
  filterOption?:
    | boolean
    | ((inputValue: string | number, option: any) => boolean)
  defaultFilterOption?:
    | boolean
    | ((inputValue: string | number, option: any) => boolean)
  onChange?: (value?: any) => void
  onClear?: () => void
  readOnly?: boolean
  onInputValueChange?: (value: string | number) => void
  onKeyDown?: (e: SyntheticEvent) => void
  onVisibleChange?: (visible: boolean) => void
  dropdownProps?: any
  options?: any[] | string[] | number[]
  onDeselect?: (value: string | number | any) => void
  onSelect?: (value: string | number | any) => void
  multiple?: boolean
  onBlur?: (e: SyntheticEvent) => void
  onFocus?: (e: SyntheticEvent) => void
}
