import { InputWithOptionsUniDriver } from '../InputWithOptions/InputWithOptions.uni.driver';
import { TextSize, TextWeight } from '../Text';
import { BaseUniDriver } from '@wix/wix-ui-test-utils/base-driver';
import { TagUniDriver } from '../Tag/Tag.uni.driver';

export interface MultiSelectUniDriver extends Omit<
  InputWithOptionsUniDriver,
  'driver'
> {
  exists: () => Promise<boolean>;
  driver: InputWithOptionsUniDriver['driver'] & {
    getMaxHeight: () => Promise<any>;
    clickOnInputWrapper: () => Promise<void>;
    inputWrapperHasFocus: () => Promise<any>;
    inputWrapperIsDisabled: () => Promise<any>;
    numberOfTags: () => Promise<number>;
    getTagLabelAt: (index: number) => Promise<string>;
    pressCommaKey: () => Promise<void>;
    getTagDriverByTagId: (tagId: string) => Promise<
      TagUniDriver & {
        isCloseButtonSmall: () => Promise<boolean>;
        isCloseButtonLarge: () => Promise<boolean>;
        getTextSize: () => TextSize;
        getTextWeight: () => TextWeight;
        isClickable: () => Promise<boolean>;
      }
    >;
    customSuffixExists: () => Promise<boolean>;
    customPrefixExists: () => Promise<boolean>;
    statusIndicatorExists: () => Promise<boolean>;
  } & Pick<InputWithOptionsUniDriver, 'driver'> &
    BaseUniDriver;
}
