/** * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import Emittery = require('emittery'); import type { JestEnvironment } from '@jest/environment'; import type { SerializableError, Test, TestFileEvent, TestResult } from '@jest/test-result'; import type { Config } from '@jest/types'; import type RuntimeType from 'jest-runtime'; export declare type ErrorWithCode = Error & { code?: string; }; export declare type OnTestStart = (test: Test) => Promise; export declare type OnTestFailure = (test: Test, serializableError: SerializableError) => Promise; export declare type OnTestSuccess = (test: Test, testResult: TestResult) => Promise; export declare type TestFramework = (globalConfig: Config.GlobalConfig, config: Config.ProjectConfig, environment: JestEnvironment, runtime: RuntimeType, testPath: string, sendMessageToJest?: TestFileEvent) => Promise; export declare type TestRunnerOptions = { serial: boolean; }; export declare type TestRunnerContext = { changedFiles?: Set; sourcesRelatedToTestsInChangedFiles?: Set; }; export declare type TestRunnerSerializedContext = { changedFiles?: Array; sourcesRelatedToTestsInChangedFiles?: Array; }; declare type WatcherState = { interrupted: boolean; }; export interface TestWatcher extends Emittery<{ change: WatcherState; }> { state: WatcherState; setState(state: WatcherState): void; isInterrupted(): boolean; isWatchMode(): boolean; } export {};