import { AttributeContextParameters, CdmAttributeContextReference, cdmAttributeContextType, CdmCollection, CdmCorpusContext, CdmDocumentDefinition, CdmObject, CdmObjectDefinitionBase, CdmObjectReference, cdmObjectType, ResolvedAttributeSet, ResolvedAttributeSetBuilder, ResolvedTraitSetBuilder, resolveOptions, VisitCallback } from '../internal';
export declare class CdmAttributeContext extends CdmObjectDefinitionBase {
    private TAG;
    type: cdmAttributeContextType;
    parent?: CdmObjectReference;
    definition?: CdmObjectReference;
    contents?: CdmCollection<CdmObject>;
    lineage?: CdmCollection<CdmAttributeContextReference>;
    get atCorpusPath(): string;
    set atCorpusPath(val: string);
    name: string;
    /**
     * @internal
     */
    lowestOrder: number;
    private _atCorpusPath;
    static get objectType(): cdmObjectType;
    constructor(ctx: CdmCorpusContext, name: string);
    /**
     * @internal
     */
    static createChildUnder(resOpt: resolveOptions, acp: AttributeContextParameters): CdmAttributeContext;
    getObjectType(): cdmObjectType;
    copyNode(resOpt: resolveOptions): CdmObject;
    /**
     * @internal
     * clears any existing lineage and sets it to the provided context reference (or a reference to the context object is one is given instead)
     */
    setLineage(objLineage: CdmObject): CdmAttributeContextReference;
    /**
     * @internal
     * add to the lineage array the provided context reference (or a reference to the context object is one is given instead)
     */
    addLineage(objLineage: CdmObject, validate?: boolean): CdmAttributeContextReference;
    static prepareOptionsForResolveAttributes(resOptSource: resolveOptions): resolveOptions;
    /**
     * @internal
     */
    static getUnderContextForCacheContext(resOpt: resolveOptions, ctx: CdmCorpusContext, acpUsed: AttributeContextParameters): CdmAttributeContext;
    /**
     * @internal
     */
    getUnderContextFromCacheContext(resOpt: resolveOptions, acpUsed: AttributeContextParameters): CdmAttributeContext;
    /**
     * @internal
     */
    associateTreeCopyWithAttributes(resOpt: resolveOptions, ras: ResolvedAttributeSet): boolean;
    /**
     * @internal
     */
    finalizeAttributeContext(resOpt: resolveOptions, pathStart: string, docHome: CdmDocumentDefinition, docFrom: CdmDocumentDefinition, monikerForDocFrom: string, finished?: boolean): boolean;
    /**
     * @internal
     */
    collectContextFromAtts(rasSub: ResolvedAttributeSet, collected: Set<CdmAttributeContext>): void;
    /**
     * @internal
     */
    pruneToScope(scopeSet: Set<CdmAttributeContext>): boolean;
    /**
     * @internal
     */
    validateLineage(resOpt: resolveOptions): boolean;
    /**
     * @internal
     */
    copyAttributeContextTree(resOpt: resolveOptions, newNode: CdmAttributeContext, attCtxSet?: Set<CdmAttributeContext>): CdmAttributeContext;
    copy(resOpt?: resolveOptions, host?: CdmObject): CdmObject;
    validate(): boolean;
    getName(): string;
    visit(pathFrom: string, preChildren: VisitCallback, postChildren: VisitCallback): boolean;
    isDerivedFrom(baseDef: string, resOpt?: resolveOptions): boolean;
    /**
     * @internal
     */
    constructResolvedTraits(rtsb: ResolvedTraitSetBuilder, resOpt: resolveOptions): void;
    /**
     * @internal
     */
    constructResolvedAttributes(resOpt: resolveOptions, under?: CdmAttributeContext): ResolvedAttributeSetBuilder;
    /**
     * @internal
     */
    setParent(resOpt: resolveOptions, parent: CdmAttributeContext): void;
}
