import { CdmAttributeContext, CdmCollection, CdmCorpusContext, CdmObject, CdmObjectDefinitionBase, cdmObjectType, CdmParameterDefinition, CdmTraitReference, ParameterCollection, ResolvedAttributeSetBuilder, ResolvedTraitSet, ResolvedTraitSetBuilder, resolveOptions, VisitCallback } from '../internal';
export declare class CdmTraitDefinition extends CdmObjectDefinitionBase {
    private TAG;
    static get objectType(): cdmObjectType;
    get parameters(): CdmCollection<CdmParameterDefinition>;
    associatedProperties: string[];
    explanation: string;
    elevated: boolean;
    traitName: string;
    extendsTrait?: CdmTraitReference;
    ugly: boolean;
    /**
     * @internal
     */
    thisIsKnownToHaveParameters: boolean;
    private _parameters;
    private allParameters;
    private hasSetFlags;
    private baseIsKnownToHaveParameters;
    constructor(ctx: CdmCorpusContext, name: string, extendsTrait?: CdmTraitReference);
    getObjectType(): cdmObjectType;
    copy(resOpt?: resolveOptions, host?: CdmObject): CdmObject;
    validate(): boolean;
    getName(): string;
    /**
     * @internal
     */
    fetchExtendsTrait(): CdmTraitReference;
    /**
     * @internal
     */
    hasParameterDefs(): CdmCollection<CdmParameterDefinition>;
    isDerivedFrom(base: string, resOpt?: resolveOptions): boolean;
    visit(pathFrom: string, preChildren: VisitCallback, postChildren: VisitCallback): boolean;
    /**
     * @internal
     */
    fetchResolvedTraits(resOpt?: resolveOptions): ResolvedTraitSet;
    /**
     * @internal
     */
    constructResolvedTraits(rtsb: ResolvedTraitSetBuilder, resOpt: resolveOptions): void;
    /**
     * @internal
     */
    fetchAllParameters(resOpt: resolveOptions): ParameterCollection;
    /**
     * @internal
     */
    constructResolvedAttributes(resOpt: resolveOptions, under?: CdmAttributeContext): ResolvedAttributeSetBuilder;
}
