import { ConfigurableTestObject } from "./configurable-test-object";
import type { TestObjectData, TestFunction, TestFunctionCtx, TestTag } from "./types";
type TestOpts = TestObjectData & Pick<ConfigurableTestObject, "file" | "id" | "location"> & {
    fn: TestFunction<TestFunctionCtx>;
    tags?: TestTag[];
};
export declare class Test extends ConfigurableTestObject {
    fn: TestFunction<TestFunctionCtx>;
    tags: Map<string, boolean>;
    err?: Error;
    static create<T extends Test>(this: new (opts: TestOpts) => T, opts: TestOpts): T;
    constructor({ title, file, id, location, fn, tags }: TestOpts);
    addTag(tag: string | string[]): void;
    hasTag(tag: string): boolean;
    getTags(): TestTag[];
    clone(): Test;
}
export {};
