/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import type MochaType from "mocha";
import { Test } from "mocha";
import { Reporter } from "./reporter.js";
declare const beforeOneHook: unique symbol;
declare const afterOneHook: unique symbol;
interface HookableTest extends Test {
    [beforeOneHook]?: Mocha.Func | Mocha.AsyncFunc;
    [afterOneHook]?: Mocha.Func | Mocha.AsyncFunc;
}
/**
 * Extension to Mocha - allows installing a before handler for a specific test.
 */
export declare function beforeOne(test: HookableTest, fn: Mocha.Func | Mocha.AsyncFunc): void;
/**
 * Extension to Mocha - allows installing an after handler for a specific test.
 */
export declare function afterOne(test: HookableTest, fn: Mocha.Func | Mocha.AsyncFunc): void;
export declare function generalSetup(mocha: Mocha): void;
export declare function extendApi(Mocha: typeof MochaType): void;
export declare function runMocha(mocha: Mocha, options?: {
    skipBeforeHooks?: boolean;
    skipAfterHooks?: boolean;
}): Promise<void>;
export declare function adaptReporter(Mocha: typeof MochaType, title: string, reporter: Reporter, updateStats?: boolean): {
    new (runner: Mocha.Runner): {
        get translatedStats(): {
            total: number;
            complete: number;
            failures: number;
        };
        stats: MochaType.Stats;
        failures: Test[];
        runner: MochaType.Runner;
        epilogue(): void;
        done?(failures: number, fn?: ((failures: number) => void) | undefined): void;
    };
    consoleLog: (...data: any[]) => void;
    useColors: boolean;
    inlineDiffs: boolean;
    readonly colors: MochaType.reporters.Base.ColorMap;
    readonly symbols: MochaType.reporters.Base.SymbolMap;
    color(type: string, str: string): string;
    readonly window: {
        width: number;
    };
    cursor: typeof MochaType.reporters.Base.cursor;
    generateDiff(actual: string, expected: string): string;
    list(failures: Test[]): void;
};
export declare function browserSetup(mocha: BrowserMocha): void;
export declare function beforeRun(hook: () => void | Promise<void>): void;
export declare function afterRun(hook: () => void | Promise<void>): void;
export {};
//# sourceMappingURL=mocha.d.ts.map