import { AsyncSeriesHook, AsyncSeriesBailHook } from 'tapable'; import { TestConfig, TestCallback } from '@proof-ui/test'; import BrowserFactory, { Browser } from '@proof-ui/browser'; import { Logger } from '@proof-ui/logger'; export interface TestHookBaseArgs { logger: Logger; config: TestConfig; name: string; } export interface TestHookArgs extends TestHookBaseArgs { browser: Browser; } export default class ProofTest { hooks: { start: AsyncSeriesHook; testFunction: AsyncSeriesBailHook; beforeExecute: AsyncSeriesBailHook; afterExecute: AsyncSeriesHook; end: AsyncSeriesHook; }; logger: Logger; private readonly testFunction; config: TestConfig; private readonly browserFactory; name: string; constructor(options: { config: TestConfig; func: TestCallback; logger: Logger; browserFactory: BrowserFactory; name: string; }); run(): Promise; }