import { DescribedPredicate } from '../../base/DescribedPredicate';
import { TypeScriptClass } from '../../core/domain/TypeScriptClass';
import { ArchCondition } from '../ArchCondition';
import { ClassesTransformer } from '../ClassesTransformer';
import { ClassesShould, ClassesShouldConjunction } from './elements/ClassesShould';
import { ClassesThat } from './elements/ClassesThat';
import { GivenClasses } from './elements/GivenClasses';
import { GivenClassesConjunction } from './elements/GivenClassesConjunction';
export declare class GivenClassesInternal implements GivenClasses, GivenClassesConjunction {
    private readonly classesTransformer;
    private readonly prepareCondition;
    constructor(classesTransformer: ClassesTransformer, prepareCondition: (archCondition: ArchCondition<TypeScriptClass>) => ArchCondition<TypeScriptClass>);
    static default(): GivenClassesInternal;
    that(): ClassesThat<GivenClassesConjunction>;
    thatWithPredicate(predicate: DescribedPredicate<TypeScriptClass>): GivenClassesConjunction;
    should(): ClassesShould;
    shouldWithConjunction(condition: ArchCondition<TypeScriptClass>): ClassesShouldConjunction;
    and(): ClassesThat<GivenClassesConjunction>;
    or(): ClassesThat<GivenClassesConjunction>;
}
