import { EventEmitter } from "../polyfills/events"; import type { MainToWorkerMessage, SpawnConfig, MainToWorker_Init, MainToWorker_Exec } from "./worker-protocol"; export type ProcessState = "starting" | "running" | "exited"; export declare class ProcessHandle extends EventEmitter { readonly pid: number; readonly worker: Worker; readonly command: string; readonly args: string[]; readonly parentPid?: number; private _state; private _exitCode; private _stdout; private _stderr; private _exitHoldCount; private _deferredExit; private _shellDoneHoldCount; private _deferredShellDone; private _syncBlockedCount; get workerExited(): boolean; get shellCommandDone(): boolean; get syncBlocked(): boolean; holdSync(): void; releaseSync(): void; get stdout(): string; get stderr(): string; get state(): ProcessState; get exitCode(): number | undefined; constructor(worker: Worker, config: SpawnConfig); _setPid(pid: number): void; postMessage(msg: MainToWorkerMessage, transfer?: Transferable[]): void; init(initMsg: MainToWorker_Init): void; exec(execMsg: MainToWorker_Exec): void; sendStdin(data: string): void; kill(signal?: string): void; resize(cols: number, rows: number): void; holdExit(): void; releaseExit(): void; holdShellDone(): void; releaseShellDone(): void; private _terminate; private _setupWorkerListeners; }