import * as Stream from "stream"; import { Test, TestOptions } from "./Test"; import { Processor } from "./Processor"; export type AsyncCallback = (resolve: () => void, reject: (error: unknown) => void) => void; export type AsyncSetupCallback = (resolve: () => void, reject: (error: unknown) => void, setup: T) => void; export type IsoBenchOptions = { parallel?: number; } & TestOptions; export declare class IsoBench { #private; readonly name: string; processors: Processor[]; tests: Test[]; currentTests: Test[]; options: Required; running: boolean; done: boolean; private _waiting; constructor(name?: string, options?: IsoBenchOptions); static IfMaster(cb: () => void): void; addAsync(name: string, callback: AsyncCallback, options?: TestOptions): this; addAsync(name: string, callback: AsyncSetupCallback, setup: () => T, options?: TestOptions): this; add(name: string, callback: () => void, options?: TestOptions): this; add(name: string, callback: (setup: T) => void, setup: () => T, options?: TestOptions): this; addProcessor(processorCallback: () => Processor): this; consoleLog(): this; streamLog(streamCallback: () => Stream.Writable): this; endGroup(name: string): this; run(): Promise; protected wait(): Promise; private _start; }