import { CardinalitySettings, CdmAttributeItem, CdmAttributeResolutionGuidance, CdmCorpusContext, CdmObjectDefinition, CdmObjectDefinitionBase, CdmPurposeReference, CdmTraitCollection, CdmTraitDefinition, ResolvedEntityReferenceSet, ResolvedTraitSet, ResolvedTraitSetBuilder, resolveOptions, VisitCallback } from '../internal';
export declare abstract class CdmAttribute extends CdmObjectDefinitionBase implements CdmAttributeItem {
    purpose: CdmPurposeReference;
    name: string;
    readonly appliedTraits: CdmTraitCollection;
    /**
     * @internal
     */
    attributeCount: number;
    /**
     * @deprecated
     * Resolution guidance is being deprecated in favor of Projections. https://docs.microsoft.com/en-us/common-data-model/sdk/convert-logical-entities-resolved-entities#projection-overview
     */
    resolutionGuidance: CdmAttributeResolutionGuidance;
    /**
     * Cardinality setting for projections
     */
    cardinality: CardinalitySettings;
    constructor(ctx: CdmCorpusContext, name: string);
    /**
     * @internal
     */
    copyAtt(resOpt: resolveOptions, copy: CdmAttribute): CdmAttribute;
    getName(): string;
    /**
     * @internal
     */
    setObjectDef(def: CdmObjectDefinition): CdmObjectDefinition;
    /**
     * @internal
     */
    visitAtt(pathFrom: string, preChildren: VisitCallback, postChildren: VisitCallback): boolean;
    /**
     * @internal
     */
    addResolvedTraitsApplied(rtsb: ResolvedTraitSetBuilder, resOpt: resolveOptions): ResolvedTraitSet;
    removeTraitDef(resOpt: resolveOptions, def: CdmTraitDefinition): void;
    /**
     * @deprecated
     * For internal use only.
     */
    abstract fetchResolvedEntityReference(resOpt: resolveOptions): ResolvedEntityReferenceSet;
}
