import { TestingDescribe } from './testing-describe.class';
import { TestingExpectation } from './testing-expectation.class';
import { TestingIt } from './testing-it.class';
import { ExecutableTests } from '../interface/executable-tests.interface';
import { CounterConfig } from '../type/counter-config.type';
export declare abstract class TestingCore<Descriptions extends string = string, Expectations extends string = string> {
    #private;
    get expect(): TestingExpectation;
    get testingDescribe(): TestingDescribe<Descriptions, boolean, boolean>;
    get testingIt(): TestingIt<Expectations, boolean, boolean>;
    constructor(allowDescribe?: boolean, allowIt?: boolean, executable?: ExecutableTests, counter?: CounterConfig, testingDescribe?: TestingDescribe<Descriptions>, testingIt?: TestingIt<Expectations>, testingExpectation?: TestingExpectation);
    afterAll(action: jasmine.ImplementationCallback, timeout?: number, execute?: boolean): this;
    afterEach(action: jasmine.ImplementationCallback, timeout?: number, execute?: boolean): this;
    beforeAll(action: jasmine.ImplementationCallback, timeout?: number, execute?: boolean): this;
    beforeEach(action: jasmine.ImplementationCallback, timeout?: number, execute?: boolean): this;
    describe<Description extends string>(description: Descriptions | Description, specDefinitions: () => any, execute?: boolean): this;
    fdescribe<Description extends string>(description: Descriptions | Description, specDefinitions: () => any): this;
    it<Expectation extends string>(expectation: Expectations | Expectation, assertion: jasmine.ImplementationCallback, execute?: boolean): this;
    setSpecProperty(key: string, value: unknown): this;
    setSuiteProperty(key: string, value: unknown): this;
    spec<T>(assertion: (expectation: TestingExpectation) => any, description?: string, execute?: boolean): this;
    xdescribe<Description extends string>(description: Descriptions | Description, specDefinitions: () => any): this;
}
