import { BaseDriver } from '@wix/wix-ui-test-utils/driver-factory';
import { PopoverMenuUniDriver } from '../PopoverMenu/PopoverMenu.uni.driver';
import { tooltipLegacyDriverFactory } from '../Tooltip/Tooltip.driver';

export interface TableActionCellDriver<T> extends BaseDriver {
  element: () => T;
  exists: () => boolean;
  clickPrimaryActionButton: () => void;
  getIsPrimaryActionButtonDisabled: () => boolean;
  getPrimaryActionButtonVisibility: () => 'onHover' | 'always';
  primaryActionButtonPrefixIconExists: () => boolean;
  primaryActionButtonSuffixIconExists: () => boolean;
  getVisibleActionsCount: () => number;
  getHiddenActionsCount: () => number;
  getVisibleActionTooltipDriver: (
    action: number,
  ) => ReturnType<typeof tooltipLegacyDriverFactory>;
  getVisibleActionByDataHookTooltipDriver: (
    dataHook: string,
  ) => ReturnType<typeof tooltipLegacyDriverFactory>;
  getHiddenActionsPopoverMenuDriver: () => PopoverMenuUniDriver;
  clickVisibleAction: (actionIndex: number) => void;
  clickVisibleActionByDataHook: (actionDataHook: string) => void;
  clickPopoverMenu: () => void;
  clickHiddenAction: (actionIndex: number) => void;
  clickHiddenActionByDataHook: (actionDataHook: string) => void;
  getMoreActionsTooltipText: () => string;
}
