import { CdmAttributeContext, CdmCorpusContext, CdmObject, cdmObjectType, CdmOperationBase, CdmTraitReferenceBase, ProjectionAttributeStateSet, ProjectionContext, resolveOptions, VisitCallback } from '../../internal';
/**
 * Class to handle AlterTraits operations
 */
export declare class CdmOperationAlterTraits extends CdmOperationBase {
    private TAG;
    traitsToAdd: CdmTraitReferenceBase[];
    traitsToRemove: CdmTraitReferenceBase[];
    argumentsContainWildcards?: boolean;
    applyTo: string[];
    constructor(ctx: CdmCorpusContext);
    /**
     * @inheritdoc
     */
    copy(resOpt?: resolveOptions, host?: CdmObject): CdmObject;
    /**
     * @inheritdoc
     */
    getName(): string;
    /**
     * @inheritdoc
     */
    getObjectType(): cdmObjectType;
    /**
     * @inheritdoc
     */
    validate(): boolean;
    /**
     * @inheritdoc
     */
    visit(pathFrom: string, preChildren: VisitCallback, postChildren: VisitCallback): boolean;
    /**
     * @inheritdoc
     * @internal
     */
    appendProjectionAttributeState(projCtx: ProjectionContext, projOutputSet: ProjectionAttributeStateSet, attrCtx: CdmAttributeContext): ProjectionAttributeStateSet;
    private resolvedNewTraits;
    /**
     * Replace wild characters in the arguments if argumentsContainWildcards is true.
     */
    private replaceWildcardCharacters;
    /**
     * Remove traits from the new resolved attribute.
     */
    private removeTraitsInNewAttribute;
}
