import { TestingCore } from '../testing-core.abstract';
import { TestingDescribe } from '../testing-describe.class';
import { TestingExpectation } from '../testing-expectation.class';
import { TestingIt } from '../testing-it.class';
import { TestingItToHaveBeen } from './testing-it-to-have-been.class';
import { CounterConfig } from '../../type/counter-config.type';
import { ExpectType } from '../../type';
import { ExecutableTests } from '../../interface/executable-tests.interface';
export declare class TestingItToHave<Descriptions extends string = string, Expectations extends string = string> extends TestingCore<Descriptions, Expectations> {
    #private;
    get been(): TestingItToHaveBeen<string, string>;
    constructor(allowDescribe: boolean, allowIt: boolean, executable?: ExecutableTests, counter?: CounterConfig, testingDescribe?: TestingDescribe, testingIt?: TestingIt, testingExpectation?: TestingExpectation);
    class<T>(actual: ExpectType<T>, expected: string, expectation?: string, expectationFailOutput?: any, execute?: boolean): this;
    size<T>(actual: ExpectType<T>, expected: number, expectation?: string, expectationFailOutput?: any, execute?: boolean): this;
    spyInteractions<T>(actual: ExpectType<T>, expectation?: string, expectationFailOutput?: any, execute?: boolean): this;
}
