import IFile from "../../storage/IFile";
import { IEventHandler } from "ste-events";
import IFolder from "../../storage/IFolder";
import IDocModule from "./IDocModule";
import DocumentedClass from "./DocumentedClass";
import DocumentedScriptEnum from "./DocumentedScriptEnum";
export default class DocumentedModule {
    private _file?;
    private _id?;
    private _name?;
    private _version?;
    private _isLoaded;
    private _isUnassociatedDocsLoaded;
    private _docFolder;
    private _docClassesAndInterfaces;
    private _docEnums;
    private _associatedInfoJsonFiles;
    private _unassociatedInfoJsonFiles;
    moduleDefinition?: IDocModule;
    private _onLoaded;
    get isLoaded(): boolean;
    get unassociatedInfoJsonFiles(): {
        [path: string]: IFile;
    };
    get isUnassociatedDocsLoaded(): boolean;
    get docFolder(): IFolder;
    get classes(): {
        [name: string]: DocumentedClass;
    };
    get enums(): {
        [name: string]: DocumentedScriptEnum;
    };
    get file(): IFile | undefined;
    set file(newFile: IFile | undefined);
    get onLoaded(): import("ste-events").IEvent<DocumentedModule, DocumentedModule>;
    get uuid(): string;
    get moduleType(): string;
    get name(): string;
    get version(): string;
    get id(): string | undefined;
    set id(newId: string | undefined);
    constructor(docFolder: IFolder);
    associateParentClasses(): void;
    loadUnassociatedDocumentation(force?: boolean): Promise<void>;
    loadUnassociatedDocumentationFolder(folder: IFolder): Promise<void>;
    static ensureOnFile(file: IFile, docFolder: IFolder, loadHandler?: IEventHandler<DocumentedModule, DocumentedModule>): Promise<void>;
    ensureDocFolder(docsFolder: IFolder): IFolder;
    persist(): Promise<boolean>;
    load(): Promise<void>;
}
