import { ProcessManager } from './process-manager';
import { ILogger } from '@theia/core/lib/common';
import { Process, ProcessOptions, ForkOptions } from './process';
import { ChildProcess } from 'child_process';
import * as stream from 'stream';
export { DevNullStream } from './dev-null-stream';
export declare const RawProcessOptions: unique symbol;
/**
 * Options to spawn a new process (`spawn`).
 *
 * For more information please refer to the spawn function of Node's
 * child_process module:
 *
 *   https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options
 */
export interface RawProcessOptions extends ProcessOptions {
}
/**
 * Options to fork a new process using the current Node interpreter (`fork`).
 *
 * For more information please refer to the fork function of Node's
 * `child_process` module:
 *
 *   https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options
 */
export interface RawForkOptions extends ForkOptions {
}
export declare const RawProcessFactory: unique symbol;
export interface RawProcessFactory {
    (options: RawProcessOptions | RawForkOptions): RawProcess;
}
export declare class RawProcess extends Process {
    /**
     * If the process fails to launch, it will be undefined.
     */
    readonly process: ChildProcess | undefined;
    readonly outputStream: stream.Readable;
    readonly errorStream: stream.Readable;
    readonly inputStream: stream.Writable;
    constructor(// eslint-disable-next-line @typescript-eslint/indent
    options: RawProcessOptions | RawForkOptions, processManager: ProcessManager, logger: ILogger);
    get pid(): number;
    kill(signal?: string): void;
}
//# sourceMappingURL=raw-process.d.ts.map