export declare const enum Operator { EQUAL = "equal", NOT_EQUAL = "notEqual", IS = "is", OK = "ok", NOT_OK = "notOk", IS_NOT = "isNot", FAIL = "fail", THROWS = "throws", DOES_NOT_THROW = "doesNotThrow" } export interface Result { pass: boolean; description: string; id?: number; skip?: boolean; } export interface TestResult extends Result { executionTime: number; } export interface AssertionResult extends Result { operator: Operator; expected: any; actual: any; at?: string; } export interface SpecFunction { (t: Assert): any; } export interface ComparatorAssertionFunction { (actual: T, expected: T, description?: string): AssertionResult; } export interface BooleanAssertionFunction { (actual: T, description?: string): AssertionResult; } export interface ErrorAssertionFunction { (fn: Function, expected?: string | RegExp | Function, description?: string): AssertionResult; } export interface MessageAssertionFunction { (message?: string): AssertionResult; } export interface TestFunction { (description: string, spec: SpecFunction, options?: object): Promise; } export interface Assert { equal: ComparatorAssertionFunction; equals: ComparatorAssertionFunction; eq: ComparatorAssertionFunction; deepEqual: ComparatorAssertionFunction; notEqual: ComparatorAssertionFunction; notEquals: ComparatorAssertionFunction; notEq: ComparatorAssertionFunction; notDeepEqual: ComparatorAssertionFunction; is: ComparatorAssertionFunction; same: ComparatorAssertionFunction; isNot: ComparatorAssertionFunction; notSame: ComparatorAssertionFunction; ok: BooleanAssertionFunction; truthy: BooleanAssertionFunction; notOk: BooleanAssertionFunction; falsy: BooleanAssertionFunction; fail: MessageAssertionFunction; throws: ErrorAssertionFunction; doesNotThrow: ErrorAssertionFunction; test: TestFunction; skip: TestFunction; only: TestFunction; } export declare type AssertionFunction = ComparatorAssertionFunction | BooleanAssertionFunction | ErrorAssertionFunction | MessageAssertionFunction; export interface Counter { successCount: number; failureCount: number; skipCount: number; count: number; } export interface Test extends AsyncIterable>, TestResult, Counter { readonly routine: Promise; readonly length: number; readonly error?: any; } export interface TestCounter extends Counter { update(assertion: Test | AssertionResult): void; } export interface TestHarnessConfiguration { runOnly?: boolean; indent?: boolean; } export interface TestHarness extends Assert, AsyncIterable>, Counter { report: (reporter?: Reporter) => Promise; pass: boolean; } export interface RootTest extends TestFunction { indent: () => void; skip: TestFunction; } export declare const enum MessageType { TEST_START = "TEST_START", ASSERTION = "ASSERTION", TEST_END = "TEST_END", BAIL_OUT = "BAIL_OUT" } export interface Message { offset: number; type: MessageType; data: T; } export interface Reporter { (stream: AsyncIterable>): Promise; } export declare type StartTestMessage = Message<{ description: string; }>; export declare type AssertionMessage = Message; export declare type TestEndMessage = Message; export declare type BailoutMessage = Message;