UNPKG

26 kBTypeScriptView Raw
1declare module 'child_process' {
2 import { BaseEncodingOptions } from 'fs';
3 import * as events from 'events';
4 import * as net from 'net';
5 import { Writable, Readable, Stream, Pipe } from 'stream';
6
7 type Serializable = string | object | number | boolean;
8 type SendHandle = net.Socket | net.Server;
9
10 interface ChildProcess extends events.EventEmitter {
11 stdin: Writable | null;
12 stdout: Readable | null;
13 stderr: Readable | null;
14 readonly channel?: Pipe | null | undefined;
15 readonly stdio: [
16 Writable | null, // stdin
17 Readable | null, // stdout
18 Readable | null, // stderr
19 Readable | Writable | null | undefined, // extra
20 Readable | Writable | null | undefined // extra
21 ];
22 readonly killed: boolean;
23 readonly pid: number;
24 readonly connected: boolean;
25 readonly exitCode: number | null;
26 readonly signalCode: NodeJS.Signals | null;
27 readonly spawnargs: string[];
28 readonly spawnfile: string;
29 kill(signal?: NodeJS.Signals | number): boolean;
30 send(message: Serializable, callback?: (error: Error | null) => void): boolean;
31 send(message: Serializable, sendHandle?: SendHandle, callback?: (error: Error | null) => void): boolean;
32 send(message: Serializable, sendHandle?: SendHandle, options?: MessageOptions, callback?: (error: Error | null) => void): boolean;
33 disconnect(): void;
34 unref(): void;
35 ref(): void;
36
37 /**
38 * events.EventEmitter
39 * 1. close
40 * 2. disconnect
41 * 3. error
42 * 4. exit
43 * 5. message
44 */
45
46 addListener(event: string, listener: (...args: any[]) => void): this;
47 addListener(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
48 addListener(event: "disconnect", listener: () => void): this;
49 addListener(event: "error", listener: (err: Error) => void): this;
50 addListener(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
51 addListener(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this;
52
53 emit(event: string | symbol, ...args: any[]): boolean;
54 emit(event: "close", code: number | null, signal: NodeJS.Signals | null): boolean;
55 emit(event: "disconnect"): boolean;
56 emit(event: "error", err: Error): boolean;
57 emit(event: "exit", code: number | null, signal: NodeJS.Signals | null): boolean;
58 emit(event: "message", message: Serializable, sendHandle: SendHandle): boolean;
59
60 on(event: string, listener: (...args: any[]) => void): this;
61 on(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
62 on(event: "disconnect", listener: () => void): this;
63 on(event: "error", listener: (err: Error) => void): this;
64 on(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
65 on(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this;
66
67 once(event: string, listener: (...args: any[]) => void): this;
68 once(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
69 once(event: "disconnect", listener: () => void): this;
70 once(event: "error", listener: (err: Error) => void): this;
71 once(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
72 once(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this;
73
74 prependListener(event: string, listener: (...args: any[]) => void): this;
75 prependListener(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
76 prependListener(event: "disconnect", listener: () => void): this;
77 prependListener(event: "error", listener: (err: Error) => void): this;
78 prependListener(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
79 prependListener(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this;
80
81 prependOnceListener(event: string, listener: (...args: any[]) => void): this;
82 prependOnceListener(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
83 prependOnceListener(event: "disconnect", listener: () => void): this;
84 prependOnceListener(event: "error", listener: (err: Error) => void): this;
85 prependOnceListener(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): this;
86 prependOnceListener(event: "message", listener: (message: Serializable, sendHandle: SendHandle) => void): this;
87 }
88
89 // return this object when stdio option is undefined or not specified
90 interface ChildProcessWithoutNullStreams extends ChildProcess {
91 stdin: Writable;
92 stdout: Readable;
93 stderr: Readable;
94 readonly stdio: [
95 Writable, // stdin
96 Readable, // stdout
97 Readable, // stderr
98 Readable | Writable | null | undefined, // extra, no modification
99 Readable | Writable | null | undefined // extra, no modification
100 ];
101 }
102
103 // return this object when stdio option is a tuple of 3
104 interface ChildProcessByStdio<
105 I extends null | Writable,
106 O extends null | Readable,
107 E extends null | Readable,
108 > extends ChildProcess {
109 stdin: I;
110 stdout: O;
111 stderr: E;
112 readonly stdio: [
113 I,
114 O,
115 E,
116 Readable | Writable | null | undefined, // extra, no modification
117 Readable | Writable | null | undefined // extra, no modification
118 ];
119 }
120
121 interface MessageOptions {
122 keepOpen?: boolean | undefined;
123 }
124
125 type StdioOptions = "pipe" | "ignore" | "inherit" | Array<("pipe" | "ipc" | "ignore" | "inherit" | Stream | number | null | undefined)>;
126
127 type SerializationType = 'json' | 'advanced';
128
129 interface MessagingOptions {
130 /**
131 * Specify the kind of serialization used for sending messages between processes.
132 * @default 'json'
133 */
134 serialization?: SerializationType | undefined;
135 }
136
137 interface ProcessEnvOptions {
138 uid?: number | undefined;
139 gid?: number | undefined;
140 cwd?: string | undefined;
141 env?: NodeJS.ProcessEnv | undefined;
142 }
143
144 interface CommonOptions extends ProcessEnvOptions {
145 /**
146 * @default false
147 */
148 windowsHide?: boolean | undefined;
149 /**
150 * @default 0
151 */
152 timeout?: number | undefined;
153 }
154
155 interface CommonSpawnOptions extends CommonOptions, MessagingOptions {
156 argv0?: string | undefined;
157 stdio?: StdioOptions | undefined;
158 shell?: boolean | string | undefined;
159 windowsVerbatimArguments?: boolean | undefined;
160 }
161
162 interface SpawnOptions extends CommonSpawnOptions {
163 detached?: boolean | undefined;
164 }
165
166 interface SpawnOptionsWithoutStdio extends SpawnOptions {
167 stdio?: 'pipe' | Array<null | undefined | 'pipe'> | undefined;
168 }
169
170 type StdioNull = 'inherit' | 'ignore' | Stream;
171 type StdioPipe = undefined | null | 'pipe';
172
173 interface SpawnOptionsWithStdioTuple<
174 Stdin extends StdioNull | StdioPipe,
175 Stdout extends StdioNull | StdioPipe,
176 Stderr extends StdioNull | StdioPipe,
177 > extends SpawnOptions {
178 stdio: [Stdin, Stdout, Stderr];
179 }
180
181 // overloads of spawn without 'args'
182 function spawn(command: string, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams;
183
184 function spawn(
185 command: string,
186 options: SpawnOptionsWithStdioTuple<StdioPipe, StdioPipe, StdioPipe>,
187 ): ChildProcessByStdio<Writable, Readable, Readable>;
188 function spawn(
189 command: string,
190 options: SpawnOptionsWithStdioTuple<StdioPipe, StdioPipe, StdioNull>,
191 ): ChildProcessByStdio<Writable, Readable, null>;
192 function spawn(
193 command: string,
194 options: SpawnOptionsWithStdioTuple<StdioPipe, StdioNull, StdioPipe>,
195 ): ChildProcessByStdio<Writable, null, Readable>;
196 function spawn(
197 command: string,
198 options: SpawnOptionsWithStdioTuple<StdioNull, StdioPipe, StdioPipe>,
199 ): ChildProcessByStdio<null, Readable, Readable>;
200 function spawn(
201 command: string,
202 options: SpawnOptionsWithStdioTuple<StdioPipe, StdioNull, StdioNull>,
203 ): ChildProcessByStdio<Writable, null, null>;
204 function spawn(
205 command: string,
206 options: SpawnOptionsWithStdioTuple<StdioNull, StdioPipe, StdioNull>,
207 ): ChildProcessByStdio<null, Readable, null>;
208 function spawn(
209 command: string,
210 options: SpawnOptionsWithStdioTuple<StdioNull, StdioNull, StdioPipe>,
211 ): ChildProcessByStdio<null, null, Readable>;
212 function spawn(
213 command: string,
214 options: SpawnOptionsWithStdioTuple<StdioNull, StdioNull, StdioNull>,
215 ): ChildProcessByStdio<null, null, null>;
216
217 function spawn(command: string, options: SpawnOptions): ChildProcess;
218
219 // overloads of spawn with 'args'
220 function spawn(command: string, args?: ReadonlyArray<string>, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams;
221
222 function spawn(
223 command: string,
224 args: ReadonlyArray<string>,
225 options: SpawnOptionsWithStdioTuple<StdioPipe, StdioPipe, StdioPipe>,
226 ): ChildProcessByStdio<Writable, Readable, Readable>;
227 function spawn(
228 command: string,
229 args: ReadonlyArray<string>,
230 options: SpawnOptionsWithStdioTuple<StdioPipe, StdioPipe, StdioNull>,
231 ): ChildProcessByStdio<Writable, Readable, null>;
232 function spawn(
233 command: string,
234 args: ReadonlyArray<string>,
235 options: SpawnOptionsWithStdioTuple<StdioPipe, StdioNull, StdioPipe>,
236 ): ChildProcessByStdio<Writable, null, Readable>;
237 function spawn(
238 command: string,
239 args: ReadonlyArray<string>,
240 options: SpawnOptionsWithStdioTuple<StdioNull, StdioPipe, StdioPipe>,
241 ): ChildProcessByStdio<null, Readable, Readable>;
242 function spawn(
243 command: string,
244 args: ReadonlyArray<string>,
245 options: SpawnOptionsWithStdioTuple<StdioPipe, StdioNull, StdioNull>,
246 ): ChildProcessByStdio<Writable, null, null>;
247 function spawn(
248 command: string,
249 args: ReadonlyArray<string>,
250 options: SpawnOptionsWithStdioTuple<StdioNull, StdioPipe, StdioNull>,
251 ): ChildProcessByStdio<null, Readable, null>;
252 function spawn(
253 command: string,
254 args: ReadonlyArray<string>,
255 options: SpawnOptionsWithStdioTuple<StdioNull, StdioNull, StdioPipe>,
256 ): ChildProcessByStdio<null, null, Readable>;
257 function spawn(
258 command: string,
259 args: ReadonlyArray<string>,
260 options: SpawnOptionsWithStdioTuple<StdioNull, StdioNull, StdioNull>,
261 ): ChildProcessByStdio<null, null, null>;
262
263 function spawn(command: string, args: ReadonlyArray<string>, options: SpawnOptions): ChildProcess;
264
265 interface ExecOptions extends CommonOptions {
266 shell?: string | undefined;
267 maxBuffer?: number | undefined;
268 killSignal?: NodeJS.Signals | number | undefined;
269 }
270
271 interface ExecOptionsWithStringEncoding extends ExecOptions {
272 encoding: BufferEncoding;
273 }
274
275 interface ExecOptionsWithBufferEncoding extends ExecOptions {
276 encoding: BufferEncoding | null; // specify `null`.
277 }
278
279 interface ExecException extends Error {
280 cmd?: string | undefined;
281 killed?: boolean | undefined;
282 code?: number | undefined;
283 signal?: NodeJS.Signals | undefined;
284 }
285
286 // no `options` definitely means stdout/stderr are `string`.
287 function exec(command: string, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess;
288
289 // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`.
290 function exec(command: string, options: { encoding: "buffer" | null } & ExecOptions, callback?: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess;
291
292 // `options` with well known `encoding` means stdout/stderr are definitely `string`.
293 function exec(command: string, options: { encoding: BufferEncoding } & ExecOptions, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess;
294
295 // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`.
296 // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`.
297 function exec(
298 command: string,
299 options: { encoding: BufferEncoding } & ExecOptions,
300 callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void,
301 ): ChildProcess;
302
303 // `options` without an `encoding` means stdout/stderr are definitely `string`.
304 function exec(command: string, options: ExecOptions, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess;
305
306 // fallback if nothing else matches. Worst case is always `string | Buffer`.
307 function exec(
308 command: string,
309 options: (BaseEncodingOptions & ExecOptions) | undefined | null,
310 callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void,
311 ): ChildProcess;
312
313 interface PromiseWithChild<T> extends Promise<T> {
314 child: ChildProcess;
315 }
316
317 // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime.
318 namespace exec {
319 function __promisify__(command: string): PromiseWithChild<{ stdout: string, stderr: string }>;
320 function __promisify__(command: string, options: { encoding: "buffer" | null } & ExecOptions): PromiseWithChild<{ stdout: Buffer, stderr: Buffer }>;
321 function __promisify__(command: string, options: { encoding: BufferEncoding } & ExecOptions): PromiseWithChild<{ stdout: string, stderr: string }>;
322 function __promisify__(command: string, options: ExecOptions): PromiseWithChild<{ stdout: string, stderr: string }>;
323 function __promisify__(command: string, options?: (BaseEncodingOptions & ExecOptions) | null): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>;
324 }
325
326 interface ExecFileOptions extends CommonOptions {
327 maxBuffer?: number | undefined;
328 killSignal?: NodeJS.Signals | number | undefined;
329 windowsVerbatimArguments?: boolean | undefined;
330 shell?: boolean | string | undefined;
331 }
332 interface ExecFileOptionsWithStringEncoding extends ExecFileOptions {
333 encoding: BufferEncoding;
334 }
335 interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions {
336 encoding: 'buffer' | null;
337 }
338 interface ExecFileOptionsWithOtherEncoding extends ExecFileOptions {
339 encoding: BufferEncoding;
340 }
341 type ExecFileException = ExecException & NodeJS.ErrnoException;
342
343 function execFile(file: string): ChildProcess;
344 function execFile(file: string, options: (BaseEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess;
345 function execFile(file: string, args?: ReadonlyArray<string> | null): ChildProcess;
346 function execFile(file: string, args: ReadonlyArray<string> | undefined | null, options: (BaseEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess;
347
348 // no `options` definitely means stdout/stderr are `string`.
349 function execFile(file: string, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess;
350 function execFile(file: string, args: ReadonlyArray<string> | undefined | null, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess;
351
352 // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`.
353 function execFile(file: string, options: ExecFileOptionsWithBufferEncoding, callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess;
354 function execFile(
355 file: string,
356 args: ReadonlyArray<string> | undefined | null,
357 options: ExecFileOptionsWithBufferEncoding,
358 callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void,
359 ): ChildProcess;
360
361 // `options` with well known `encoding` means stdout/stderr are definitely `string`.
362 function execFile(file: string, options: ExecFileOptionsWithStringEncoding, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess;
363 function execFile(
364 file: string,
365 args: ReadonlyArray<string> | undefined | null,
366 options: ExecFileOptionsWithStringEncoding,
367 callback: (error: ExecFileException | null, stdout: string, stderr: string) => void,
368 ): ChildProcess;
369
370 // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`.
371 // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`.
372 function execFile(
373 file: string,
374 options: ExecFileOptionsWithOtherEncoding,
375 callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void,
376 ): ChildProcess;
377 function execFile(
378 file: string,
379 args: ReadonlyArray<string> | undefined | null,
380 options: ExecFileOptionsWithOtherEncoding,
381 callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void,
382 ): ChildProcess;
383
384 // `options` without an `encoding` means stdout/stderr are definitely `string`.
385 function execFile(file: string, options: ExecFileOptions, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess;
386 function execFile(
387 file: string,
388 args: ReadonlyArray<string> | undefined | null,
389 options: ExecFileOptions,
390 callback: (error: ExecFileException | null, stdout: string, stderr: string) => void
391 ): ChildProcess;
392
393 // fallback if nothing else matches. Worst case is always `string | Buffer`.
394 function execFile(
395 file: string,
396 options: (BaseEncodingOptions & ExecFileOptions) | undefined | null,
397 callback: ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null,
398 ): ChildProcess;
399 function execFile(
400 file: string,
401 args: ReadonlyArray<string> | undefined | null,
402 options: (BaseEncodingOptions & ExecFileOptions) | undefined | null,
403 callback: ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null,
404 ): ChildProcess;
405
406 // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime.
407 namespace execFile {
408 function __promisify__(file: string): PromiseWithChild<{ stdout: string, stderr: string }>;
409 function __promisify__(file: string, args: ReadonlyArray<string> | undefined | null): PromiseWithChild<{ stdout: string, stderr: string }>;
410 function __promisify__(file: string, options: ExecFileOptionsWithBufferEncoding): PromiseWithChild<{ stdout: Buffer, stderr: Buffer }>;
411 function __promisify__(file: string, args: ReadonlyArray<string> | undefined | null, options: ExecFileOptionsWithBufferEncoding): PromiseWithChild<{ stdout: Buffer, stderr: Buffer }>;
412 function __promisify__(file: string, options: ExecFileOptionsWithStringEncoding): PromiseWithChild<{ stdout: string, stderr: string }>;
413 function __promisify__(file: string, args: ReadonlyArray<string> | undefined | null, options: ExecFileOptionsWithStringEncoding): PromiseWithChild<{ stdout: string, stderr: string }>;
414 function __promisify__(file: string, options: ExecFileOptionsWithOtherEncoding): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>;
415 function __promisify__(
416 file: string,
417 args: ReadonlyArray<string> | undefined | null,
418 options: ExecFileOptionsWithOtherEncoding,
419 ): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>;
420 function __promisify__(file: string, options: ExecFileOptions): PromiseWithChild<{ stdout: string, stderr: string }>;
421 function __promisify__(file: string, args: ReadonlyArray<string> | undefined | null, options: ExecFileOptions): PromiseWithChild<{ stdout: string, stderr: string }>;
422 function __promisify__(file: string, options: (BaseEncodingOptions & ExecFileOptions) | undefined | null): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>;
423 function __promisify__(
424 file: string,
425 args: ReadonlyArray<string> | undefined | null,
426 options: (BaseEncodingOptions & ExecFileOptions) | undefined | null,
427 ): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>;
428 }
429
430 interface ForkOptions extends ProcessEnvOptions, MessagingOptions {
431 execPath?: string | undefined;
432 execArgv?: string[] | undefined;
433 silent?: boolean | undefined;
434 stdio?: StdioOptions | undefined;
435 detached?: boolean | undefined;
436 windowsVerbatimArguments?: boolean | undefined;
437 }
438 function fork(modulePath: string, options?: ForkOptions): ChildProcess;
439 function fork(modulePath: string, args?: ReadonlyArray<string>, options?: ForkOptions): ChildProcess;
440
441 interface SpawnSyncOptions extends CommonSpawnOptions {
442 input?: string | NodeJS.ArrayBufferView | undefined;
443 killSignal?: NodeJS.Signals | number | undefined;
444 maxBuffer?: number | undefined;
445 encoding?: BufferEncoding | 'buffer' | null | undefined;
446 }
447 interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions {
448 encoding: BufferEncoding;
449 }
450 interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions {
451 encoding?: 'buffer' | null | undefined;
452 }
453 interface SpawnSyncReturns<T> {
454 pid: number;
455 output: Array<T | null>;
456 stdout: T;
457 stderr: T;
458 status: number | null;
459 signal: NodeJS.Signals | null;
460 error?: Error | undefined;
461 }
462 function spawnSync(command: string): SpawnSyncReturns<Buffer>;
463 function spawnSync(command: string, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns<string>;
464 function spawnSync(command: string, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns<Buffer>;
465 function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns<string | Buffer>;
466 function spawnSync(command: string, args?: ReadonlyArray<string>, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns<string>;
467 function spawnSync(command: string, args?: ReadonlyArray<string>, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns<Buffer>;
468 function spawnSync(command: string, args?: ReadonlyArray<string>, options?: SpawnSyncOptions): SpawnSyncReturns<string | Buffer>;
469
470 interface ExecSyncOptions extends CommonOptions {
471 input?: string | Uint8Array | undefined;
472 stdio?: StdioOptions | undefined;
473 shell?: string | undefined;
474 killSignal?: NodeJS.Signals | number | undefined;
475 maxBuffer?: number | undefined;
476 encoding?: BufferEncoding | 'buffer' | null | undefined;
477 }
478 interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions {
479 encoding: BufferEncoding;
480 }
481 interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions {
482 encoding?: 'buffer' | null | undefined;
483 }
484 function execSync(command: string): Buffer;
485 function execSync(command: string, options: ExecSyncOptionsWithStringEncoding): string;
486 function execSync(command: string, options: ExecSyncOptionsWithBufferEncoding): Buffer;
487 function execSync(command: string, options?: ExecSyncOptions): string | Buffer;
488
489 interface ExecFileSyncOptions extends CommonOptions {
490 input?: string | NodeJS.ArrayBufferView | undefined;
491 stdio?: StdioOptions | undefined;
492 killSignal?: NodeJS.Signals | number | undefined;
493 maxBuffer?: number | undefined;
494 encoding?: BufferEncoding | undefined;
495 shell?: boolean | string | undefined;
496 }
497 interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions {
498 encoding: BufferEncoding;
499 }
500 interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions {
501 encoding: BufferEncoding; // specify `null`.
502 }
503 function execFileSync(command: string): Buffer;
504 function execFileSync(command: string, options: ExecFileSyncOptionsWithStringEncoding): string;
505 function execFileSync(command: string, options: ExecFileSyncOptionsWithBufferEncoding): Buffer;
506 function execFileSync(command: string, options?: ExecFileSyncOptions): string | Buffer;
507 function execFileSync(command: string, args: ReadonlyArray<string>): Buffer;
508 function execFileSync(command: string, args: ReadonlyArray<string>, options: ExecFileSyncOptionsWithStringEncoding): string;
509 function execFileSync(command: string, args: ReadonlyArray<string>, options: ExecFileSyncOptionsWithBufferEncoding): Buffer;
510 function execFileSync(command: string, args?: ReadonlyArray<string>, options?: ExecFileSyncOptions): string | Buffer;
511}
512declare module 'node:child_process' {
513 export * from 'child_process';
514}