import { AttributeContextParameters, CdmAttribute, CdmAttributeContext, CdmCorpusContext, CdmEntityReference, CdmObject, cdmObjectType, CdmPurposeReference, ResolvedAttributeSetBuilder, ResolvedEntityReferenceSet, ResolvedTraitSetBuilder, resolveOptions, VisitCallback } from '../internal';
export declare class CdmEntityAttributeDefinition extends CdmAttribute {
    private TAG;
    static get objectType(): cdmObjectType;
    get description(): string;
    set description(val: string);
    get displayName(): string;
    set displayName(val: string);
    purpose: CdmPurposeReference;
    private _entity;
    /**
     * The entity attribute's entity reference.
     */
    get entity(): CdmEntityReference;
    set entity(value: CdmEntityReference);
    /**
     * For projection based models, a source is explicitly tagged as a polymorphic source for it to be recognized as such.
     * This property of the entity attribute allows us to do that.
     */
    isPolymorphicSource?: boolean;
    private readonly traitToPropertyMap;
    constructor(ctx: CdmCorpusContext, name: string);
    getObjectType(): cdmObjectType;
    isDerivedFrom(base: string, resOpt?: resolveOptions): boolean;
    copy(resOpt?: resolveOptions, host?: CdmObject): CdmEntityAttributeDefinition;
    validate(): boolean;
    visit(pathFrom: string, preChildren: VisitCallback, postChildren: VisitCallback): boolean;
    /**
     * @internal
     */
    constructResolvedTraits(rtsb: ResolvedTraitSetBuilder, resOpt: resolveOptions): void;
    /**
     * @internal
     */
    fetchObjectFromCache(resOpt: resolveOptions, acpInContext?: AttributeContextParameters): ResolvedAttributeSetBuilder;
    /**
     * @internal
     */
    constructResolvedAttributes(resOpt: resolveOptions, under?: CdmAttributeContext): ResolvedAttributeSetBuilder;
    /**
     * @deprecated
     * For internal use only.
     */
    fetchResolvedEntityReference(resOpt?: resolveOptions): ResolvedEntityReferenceSet;
    /**
     * Creates an AttributeResolutionContext object based off of resolution guidance information
     * @param resOpt The resolve options
     */
    private fetchAttResContext;
}
