/** * Define an interface for objects that (like the WebDriver instance) can take screen shots */ interface ScreenshotTaker { takeScreenshot(): Promise; } /** * The ScreenshotManager interface */ interface ScreenshotManager { /** * This function will set screenshot location based on test suite name and test name * @param suiteName test case's suite name * @param testName test case's name */ beforeTest(suiteName: string, testName: string): void; /** * This function will do cleanup after test execution. It will puerge screenshot for passed test and generate final state * screenshot for failed test * @param passed boolean to check test state */ afterTest(passed: boolean): void; /** * This function will take screenshot and save it on the file system * @param screenshotTaker an screenshotTaker instance * @param name screenshot image name * @return a promise * @example await screenshotManager.takeAndSaveScreenShot(driver, "before_click"); */ takeAndSaveScreenShot(screenshotTaker: ScreenshotTaker, name: string): Promise; } /** * This function will create an instance ScreenshotManager * @param screenshotRoot screenshot root location */ export declare function create(screenshotRoot: string): ScreenshotManager; /** * This function will get an active ScreenshotManager instance * @return an active ScreenshotManager instance */ export declare function get(): ScreenshotManager; /** * This function will set an active ScreenshotManager instance * @param screenshotManager an active ScreenshotManager instance */ export declare function set(screenshotManager: ScreenshotManager): void; export {};