import { CdmAttributeContext, CdmCorpusContext, CdmObject, CdmObjectDefinitionBase, cdmObjectType, CdmPurposeReference, ResolvedAttributeSetBuilder, ResolvedTraitSetBuilder, resolveOptions, VisitCallback } from '../internal';
export declare class CdmPurposeDefinition extends CdmObjectDefinitionBase {
    private TAG;
    purposeName: string;
    extendsPurpose?: CdmPurposeReference;
    static get objectType(): cdmObjectType;
    constructor(ctx: CdmCorpusContext, purposeName: string, extendsPurpose: CdmPurposeReference);
    getObjectType(): cdmObjectType;
    copy(resOpt?: resolveOptions, host?: CdmObject): CdmObject;
    validate(): boolean;
    getName(): string;
    /**
     * @internal
     */
    extendsPurposeRef(): CdmPurposeReference;
    visit(pathFrom: string, preChildren: VisitCallback, postChildren: VisitCallback): boolean;
    isDerivedFrom(base: string, resOpt?: resolveOptions): boolean;
    /**
     * @internal
     */
    constructResolvedTraits(rtsb: ResolvedTraitSetBuilder, resOpt: resolveOptions): void;
    /**
     * @internal
     */
    constructResolvedAttributes(resOpt: resolveOptions, under?: CdmAttributeContext): ResolvedAttributeSetBuilder;
}
