import { ControlMethods, ItInfo, DescribeInfo, CaseInfo } from './testInfo';
export type anyFunction = Function;
type constructorType = anyFunction;
export declare function setJest(): void;
export type targetType = unknown;
declare abstract class ExecutableBase {
    abstract execute(): Promise<void> | void;
    protected executeAsync(): Promise<void>;
}
export declare class TestContext extends ExecutableBase {
    private name;
    private inner;
    constructor(name: string, inner: ExecutableBase);
    execute(): void;
}
export declare class Sequensal extends ExecutableBase {
    private steps;
    push(step: ExecutableBase): void;
    getLength(): number;
    execute(): void;
    addControlMethods(methods: ControlMethods, instance: targetType): void;
    addItsAndCases(itsAndCases: {
        [text: string]: ItInfo | CaseInfo;
    }, instance: targetType): void;
}
export declare class TestDescribe extends ExecutableBase {
    private name;
    private info;
    private constructorFunc;
    private mainExecution;
    private instance;
    execute(): void;
    constructor(name: string, info: DescribeInfo, constructorFunc: constructorType);
    private defineGlobalControlMethods;
    private createInstance;
    private createSandboxes;
    private createMainSequence;
    private defineMainControlMethodsItsAndCases;
    private defineContextControlMethodsItsAndCases;
    private createSinonsMembers;
    private createInitAndRapupMethods;
    private addInitMethodIntoBeforeEachControlMethods;
    private addRapupMethodsIntoAfterEachControlMethods;
}
export {};
