/** An alias of `assert.ok()`. */ declare function assert(value: any, message?: string | Error): asserts value; declare namespace assert { class AssertionError extends Error { actual: any; expected: any; operator: string; generatedMessage: boolean; code: "ERR_ASSERTION"; constructor(options?: { /** If provided, the error message is set to this value. */ message?: string | undefined; /** The `actual` property on the error instance. */ actual?: any; /** The `expected` property on the error instance. */ expected?: any; /** The `operator` property on the error instance. */ operator?: string | undefined; /** If provided, the generated stack trace omits frames before this function. */ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type stackStartFn?: Function | undefined; }); } type AssertPredicate = RegExp | (new() => object) | ((thrown: any) => boolean) | object | Error; function fail(message?: string | Error): never; /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */ function fail( actual: any, expected: any, message?: string | Error, operator?: string, // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type stackStartFn?: Function, ): never; function ok(value: any, message?: string | Error): asserts value; /** @deprecated since v9.9.0 - use strictEqual() instead. */ function equal(actual: any, expected: any, message?: string | Error): void; /** @deprecated since v9.9.0 - use notStrictEqual() instead. */ function notEqual(actual: any, expected: any, message?: string | Error): void; /** @deprecated since v9.9.0 - use deepStrictEqual() instead. */ function deepEqual(actual: any, expected: any, message?: string | Error): void; /** @deprecated since v9.9.0 - use notDeepStrictEqual() instead. */ function notDeepEqual(actual: any, expected: any, message?: string | Error): void; function strictEqual(actual: any, expected: T, message?: string | Error): asserts actual is T; function notStrictEqual(actual: any, expected: any, message?: string | Error): void; function deepStrictEqual(actual: any, expected: T, message?: string | Error): asserts actual is T; function notDeepStrictEqual(actual: any, expected: any, message?: string | Error): void; function throws(block: () => any, message?: string | Error): void; function throws(block: () => any, error: AssertPredicate, message?: string | Error): void; function doesNotThrow(block: () => any, message?: string | Error): void; function doesNotThrow(block: () => any, error: AssertPredicate, message?: string | Error): void; function ifError(value: any): asserts value is null | undefined; function rejects(block: (() => Promise) | Promise, message?: string | Error): Promise; function rejects( block: (() => Promise) | Promise, error: AssertPredicate, message?: string | Error, ): Promise; function doesNotReject(block: (() => Promise) | Promise, message?: string | Error): Promise; function doesNotReject( block: (() => Promise) | Promise, error: AssertPredicate, message?: string | Error, ): Promise; function match(value: string, regExp: RegExp, message?: string | Error): void; function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void; const strict: & Omit< typeof assert, | "equal" | "notEqual" | "deepEqual" | "notDeepEqual" | "ok" | "strictEqual" | "deepStrictEqual" | "ifError" | "strict" > & { (value: any, message?: string | Error): asserts value; equal: typeof strictEqual; notEqual: typeof notStrictEqual; deepEqual: typeof deepStrictEqual; notDeepEqual: typeof notDeepStrictEqual; // Mapped types and assertion functions are incompatible? // TS2775: Assertions require every name in the call target // to be declared with an explicit type annotation. ok: typeof ok; strictEqual: typeof strictEqual; deepStrictEqual: typeof deepStrictEqual; ifError: typeof ifError; strict: typeof strict; }; } export = assert;