import {
  ElementHandle
} from 'puppeteer';

import { RequestHandler } from './request-handler';

export interface GetServiceAccountsRequestHandler extends RequestHandler {
  waitForSelector(
    selector: string,
    options?: {
      visible?: boolean;
      hidden?: boolean;
      timeout?: number;
    },
  ): Promise<ElementHandle | null>;

  $eval<ReturnType>(
    selector: string,
    pageFunction: (
      element: Element,
      ...args: unknown[]
    ) => ReturnType | Promise<ReturnType>,
  ): Promise<Awaited<ReturnType>>;
}
