import type { FN, Promisable, Color, Teardown, TestAPI, TestContext, TestFlags, TestImplementation, TestLog, TestPassed, TestStats, TestStatus } from './types';
declare class Tester<Context extends {} = {}> {
    ctx: TestContext<Context>;
    duration: number;
    executed: boolean;
    flags: TestFlags;
    implementation: TestImplementation<Context>;
    logs: TestLog[];
    timeoutMessage: string;
    timeoutMs: number;
    passed: TestPassed;
    prefixes: string[];
    stats: TestStats;
    teardowns: Teardown[];
    title: string;
    constructor(title: string, implementation: TestImplementation<Context>, flags: TestFlags);
    private makeAssertion;
    private wrapApi;
    private wrapAssert;
    private wrapCall;
    private wrapEnv;
    private wrapLogger;
    private wrapTimeout;
    private wrapTimer;
    api: () => TestAPI<Context>;
    call: () => Promise<void>;
    execute: () => Promise<void>;
    result: (passed: TestPassed, status: TestStatus, statusColor: Color, error?: Error | string) => Promise<void>;
    log: (...values: TestLog[]) => void;
    plan: (count: number) => void;
    teardown: (fn: Teardown) => void;
    timeout: (ms: number, message?: string) => void;
    pass: FN<[message?: string | undefined], void>;
    fail: FN<[message?: string | undefined], void>;
    assert: FN<[value: unknown, message?: string | undefined], void>;
    truthy: FN<[value: unknown, message?: string | undefined], void>;
    falsy: FN<[value: unknown, message?: string | undefined], void>;
    true: FN<[value: unknown, message?: string | undefined], void>;
    false: FN<[value: unknown, message?: string | undefined], void>;
    is: FN<[value: unknown, expected: unknown, message?: string | undefined], void>;
    not: FN<[value: unknown, expected: unknown, message?: string | undefined], void>;
    deepEqual: FN<[value: unknown, expected: unknown, message?: string | undefined], void>;
    notDeepEqual: FN<[value: unknown, expected: unknown, message?: string | undefined], void>;
    like: FN<[value: unknown, partial: unknown, message?: string | undefined], void>;
    notLike: FN<[value: unknown, partial: unknown, message?: string | undefined], void>;
    throws: FN<[fn: () => void, expectation?: import("./types").AssertErrorExpectation | undefined, message?: string | undefined], void>;
    throwsAsync: FN<[fn: () => Promisable<void>, expectation?: import("./types").AssertErrorExpectation | undefined, message?: string | undefined], Promise<void>>;
    notThrows: FN<[fn: () => void, message?: string | undefined], void>;
    notThrowsAsync: FN<[fn: () => Promisable<void>, message?: string | undefined], Promise<void>>;
    regex: FN<[str: string, regex: RegExp, message?: string | undefined], void>;
    notRegex: FN<[str: string, regex: RegExp, message?: string | undefined], void>;
    wait: (ms: number) => Promise<void>;
}
export default Tester;
