declare type Event = {
    type: string;
    message: string;
};
declare const setup: (opt?: {
    onEvent: (event: Event) => void;
}) => Promise<void>;
declare const version: () => Promise<string>;
declare const getProjects: () => Project[];
declare const createProject: (name: string) => Promise<Project>;
declare const openProject: (name: string) => Promise<Project>;
declare const clearVMCache: () => Promise<void>;
declare class Project {
    id: number;
    name: string;
    rootDirId: number;
    scriptsDir: Dir;
    modulesDir: Dir;
    testsDir: Dir;
    constructor(id: number | BigInt, name: string);
    private reloadFs;
    getFs(): any;
    private getOrCreateDir;
    private openFile;
    removeFile(f: File): void;
    clear(): void;
    renameFile(f: File, name: string): File;
    openScript(name: string): File;
    openModule(name: string): File;
    openTest(name: string): File;
    setContent(f: File, content: string): void;
    getContent(f: File): string;
    build(): Promise<void>;
    runScript(command: string): Promise<string>;
    remove(): Promise<void>;
}
declare type Dir = {
    id: number;
    name: string;
    list: Fs[];
};
declare type File = {
    id: number;
    name: string;
};
declare type Fs = {
    Dir?: Dir;
    File?: File;
};

export { Dir, Event, File, Fs, clearVMCache, createProject, getProjects, openProject, setup, version };
