import { CdmCorpusContext, CdmCorpusDefinition, CdmDocumentCollection, CdmDocumentDefinition, CdmFolderCollection, CdmObject, CdmObjectDefinition, CdmObjectDefinitionBase, cdmObjectType, ResolvedAttributeSet, ResolvedTraitSet, resolveOptions, VisitCallback } from '../internal';
/**
 * The object model implementation for Folder object.
 */
export declare class CdmFolderDefinition extends CdmObjectDefinitionBase {
    private TAG;
    /**
     * @inheritdoc
     */
    name: string;
    /**
     * @inheritdoc
     */
    get folderPath(): string;
    /**
     * @inheritdoc
     * @internal
     */
    set folderPath(value: string);
    /**
     * @inheritdoc
     */
    childFolders?: CdmFolderCollection;
    /**
     * @inheritdoc
     */
    documents?: CdmDocumentCollection;
    /**
     * @internal
     * The corpus object this folder is a part of.
     */
    corpus: CdmCorpusDefinition;
    /**
     * @inheritdoc
     * @internal
     */
    documentLookup: Map<string, CdmDocumentDefinition>;
    /**
     * @inheritdoc
     */
    get namespace(): string;
    /**
     * @inheritdoc
     * @internal
     */
    set namespace(value: string);
    /**
     * @inheritdoc
     */
    objectType: cdmObjectType;
    static get objectType(): cdmObjectType;
    private _folderPath;
    private _namespace;
    /**
     * Initializes a new instance of theFolderImpl class.
     * @param ctx The context.
     * @param name The name.
     */
    constructor(ctx: CdmCorpusContext, name: string);
    /**
     * @inheritdoc
     */
    getName(): string;
    /**
     * @inheritdoc
     */
    validate(): boolean;
    /**
     * @inheritdoc
     */
    isDerivedFrom(base: string, resOpt?: resolveOptions): boolean;
    get atCorpusPath(): string;
    /**
     * @internal
     * @inheritdoc
     */
    fetchChildFolderFromPath(path: string, makeFolder?: boolean): CdmFolderDefinition;
    /**
     * @internal
     * @inheritdoc
     */
    fetchDocumentFromFolderPathAsync(objectPath: string, forceReload?: boolean, resOpt?: resolveOptions): Promise<CdmDocumentDefinition>;
    /**
     * @inheritdoc
     */
    getObjectType(): cdmObjectType;
    /**
     * @inheritdoc
     */
    visit(pathFrom: string, preChildren: VisitCallback, postChildren: VisitCallback): boolean;
    /**
     * @inheritdoc
     */
    fetchObjectDefinition<T = CdmObjectDefinition>(resOpt?: resolveOptions): T;
    /**
     * @inheritdoc
     * @internal
     */
    fetchResolvedTraits(resOpt?: resolveOptions): ResolvedTraitSet;
    /**
     * @inheritdoc
     * @internal
     */
    fetchResolvedAttributes(): ResolvedAttributeSet;
    /**
     * @inheritdoc
     */
    copy(resOpt?: resolveOptions, host?: CdmObject): CdmObject;
}
