import { DataTableDriver } from './DataTable/DataTable.uni.driver';
import { CheckboxUniDriver } from '../Checkbox/Checkbox.uni.driver';
import { UniDriver } from '@wix/unidriver-core';
import { UniDriverFactory } from '@wix/wix-ui-test-utils/uni-driver-factory';
import { FloatingScrollBarUniDriver } from './FloatingScrollBar/FloatingScrollBar.uni.driver';

export interface TableUniDriver extends DataTableDriver {
  getRowCheckboxDriver: (index: number) => Promise<CheckboxUniDriver>;
  getBulkSelectionCheckboxDriver: () => Promise<CheckboxUniDriver>;
  isBulkSelectionDisabled: () => Promise<boolean>;
  isRowSelectionDisabled: (index: number) => Promise<boolean>;
  clickRowCheckbox: (index: number) => Promise<void>;
  clickBulkSelectionCheckbox: () => Promise<void>;
  isRowSelected: (index: number) => Promise<boolean>;
  getBulkSelectionState: () => Promise<'ALL' | 'SOME' | 'NONE'>;
  getTitlebar: () => Promise<UniDriver | null>;
  getCellTextValue: (row?: number, column?: number) => Promise<string>;
  isSelectionTooltipEnabled: (index: number) => Promise<boolean>;
  getSelectionTooltipContent: (index: number) => Promise<string>;
  getRowNumberCell: (index: number) => Promise<UniDriver>;
  getRowNumberText: (index: number) => Promise<string>;
  hasRowNumberText: (index: number) => Promise<boolean>;
  hasRowNumberCell: (index: number) => Promise<boolean>;
  getFloatingScrollBarDriver: () => ReturnType<
    typeof FloatingScrollBarUniDriver
  >;
}

declare const tableUniDriverFactory: UniDriverFactory<TableUniDriver>;
