import { AttributeResolutionApplier, AttributeResolutionApplierCapabilities, CdmAttributeResolutionGuidance, relationshipInfo, ResolvedAttribute, ResolvedAttributeSet, ResolvedTraitSet, resolveOptions } from '../internal';
export declare class AttributeResolutionContext {
    actionsModify: AttributeResolutionApplier[];
    actionsGroupAdd: AttributeResolutionApplier[];
    actionsRoundAdd: AttributeResolutionApplier[];
    actionsAttributeAdd: AttributeResolutionApplier[];
    actionsRemove: AttributeResolutionApplier[];
    /**
     * @internal
     */
    traitsToApply: ResolvedTraitSet;
    /**
     * @internal
     */
    applierCaps: AttributeResolutionApplierCapabilities;
    resGuide: CdmAttributeResolutionGuidance;
    resOpt: resolveOptions;
    constructor(resOpt: resolveOptions, resGuide: CdmAttributeResolutionGuidance, traits: ResolvedTraitSet);
    /**
     * Returns a RelationshipInfo instance containing information about how the entity attribute relationship should be resolved
     * @param resOpt
     * @param arc
     * @internal
     */
    getRelationshipInfo(): relationshipInfo;
}
/**
 * @internal
 */
export declare class ResolvedAttributeSetBuilder {
    /**
     * @internal
     */
    ras: ResolvedAttributeSet;
    inheritedMark: number;
    constructor();
    /**
     * @internal
     */
    mergeAttributes(rasNew: ResolvedAttributeSet): void;
    /**
     * @internal
     */
    takeReference(rasNew: ResolvedAttributeSet): void;
    /**
     * @internal
     */
    giveReference(): ResolvedAttributeSet;
    /**
     * @internal
     */
    ownOne(ra: ResolvedAttribute): void;
    applyTraits(arc: AttributeResolutionContext): void;
    generateApplierAttributes(arc: AttributeResolutionContext, applyTraitsToNew: boolean): void;
    removeRequestedAtts(): void;
    markInherited(): void;
    markOrder(): void;
    private getApplierGeneratedAttributes;
}
