import EventEmitter from "events"; import { AbsolutePath, ReadConfigResult } from "./configLoader.js"; import { TaskOptions, TaskTree, TaskTreeStatus } from "./taskTree.js"; export type WorkspaceOptions = { roots: string[]; nodeOptions?: NodeForkOptions; watchMode: boolean; jobs: number; }; type NodeForkOptions = { envFile?: AbsolutePath; forceColors?: boolean; }; export declare const MSG_TASK_DONE = "service started"; type ProjectEvents = { 'build_status_changed': []; 'pid_changed': []; 'build_stdout': [string]; 'build_stderr': [string]; }; export declare class Project extends EventEmitter { private _configPath; private _taskTree; private _watchPaths; private _ignorePaths; private _fsWatch?; private _customName?; private _configurationError?; private _nodeForkOptions?; private _output; private _startTimestampMs; private _stopTimestampMs?; private _subprocess?; private _isLongRunningProcess; private _processExitCode?; private _customEnv; constructor(taskTree: TaskTree, configPath: AbsolutePath, nodeForkOptions?: NodeForkOptions); introspectWatchPaths(): AbsolutePath[]; introspectIgnorePaths(): AbsolutePath[]; startFileWatch(toWatch: AbsolutePath[], toIgnore: AbsolutePath[], onFilesChanged?: (project: Project, filePath: AbsolutePath) => void): Promise; stopFileWatch(): Promise; configPath(): AbsolutePath; setConfiguration(result: ReadConfigResult): void; durationMs(): number; name(): string; status(): import("./taskTree.js").TaskStatus; isLongRunningProcess(): boolean; pid(): number | undefined; exitCode(): number | null | undefined; id(): AbsolutePath; output(): string; requestBuild(options: TaskOptions): void; private _killProcess; private _onStdOut; private _onStdErr; dispose(): Promise; } type WorkspaceEvents = { 'workspace_status_changed': []; 'project_added': [Project]; 'project_removed': [Project]; 'projects_changed': []; }; export type WorkspaceStatus = TaskTreeStatus | 'error'; export declare class Workspace extends EventEmitter { private _options; private _taskTree; private _projects; private _updateData?; private _workspaceError?; constructor(_options: WorkspaceOptions); options(): WorkspaceOptions; workspaceStatus(): WorkspaceStatus; workspaceError(): string | undefined; bfsProjects(): Project[]; directDependencies(project: Project): Project[]; directDependants(project: Project): Project[]; scheduleUpdate(project: Project): void; private _scheduleUpdate; stop(): Promise; private _doUpdate; private _setWorkspaceError; private _readConfiguration; } export {};