UNPKG

24.8 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;
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: number | 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, signal: NodeJS.Signals) => 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, signal: NodeJS.Signals): 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, signal: NodeJS.Signals) => 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, signal: NodeJS.Signals) => 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, signal: NodeJS.Signals) => 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, signal: NodeJS.Signals) => 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;
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;
135 }
136
137 interface ProcessEnvOptions {
138 uid?: number;
139 gid?: number;
140 cwd?: string;
141 env?: NodeJS.ProcessEnv;
142 }
143
144 interface CommonOptions extends ProcessEnvOptions {
145 /**
146 * @default true
147 */
148 windowsHide?: boolean;
149 /**
150 * @default 0
151 */
152 timeout?: number;
153 }
154
155 interface CommonSpawnOptions extends CommonOptions, MessagingOptions {
156 argv0?: string;
157 stdio?: StdioOptions;
158 shell?: boolean | string;
159 windowsVerbatimArguments?: boolean;
160 }
161
162 interface SpawnOptions extends CommonSpawnOptions {
163 detached?: boolean;
164 }
165
166 interface SpawnOptionsWithoutStdio extends SpawnOptions {
167 stdio?: 'pipe' | Array<null | undefined | 'pipe'>;
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;
267 maxBuffer?: number;
268 killSignal?: NodeJS.Signals | number;
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;
281 killed?: boolean;
282 code?: number;
283 signal?: NodeJS.Signals;
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;
328 killSignal?: NodeJS.Signals | number;
329 windowsVerbatimArguments?: boolean;
330 shell?: boolean | string;
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
342 function execFile(file: string): ChildProcess;
343 function execFile(file: string, options: (BaseEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess;
344 function execFile(file: string, args?: ReadonlyArray<string> | null): ChildProcess;
345 function execFile(file: string, args: ReadonlyArray<string> | undefined | null, options: (BaseEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess;
346
347 // no `options` definitely means stdout/stderr are `string`.
348 function execFile(file: string, callback: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess;
349 function execFile(file: string, args: ReadonlyArray<string> | undefined | null, callback: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess;
350
351 // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`.
352 function execFile(file: string, options: ExecFileOptionsWithBufferEncoding, callback: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess;
353 function execFile(
354 file: string,
355 args: ReadonlyArray<string> | undefined | null,
356 options: ExecFileOptionsWithBufferEncoding,
357 callback: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void,
358 ): ChildProcess;
359
360 // `options` with well known `encoding` means stdout/stderr are definitely `string`.
361 function execFile(file: string, options: ExecFileOptionsWithStringEncoding, callback: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess;
362 function execFile(
363 file: string,
364 args: ReadonlyArray<string> | undefined | null,
365 options: ExecFileOptionsWithStringEncoding,
366 callback: (error: ExecException | null, stdout: string, stderr: string) => void,
367 ): ChildProcess;
368
369 // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`.
370 // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`.
371 function execFile(
372 file: string,
373 options: ExecFileOptionsWithOtherEncoding,
374 callback: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void,
375 ): ChildProcess;
376 function execFile(
377 file: string,
378 args: ReadonlyArray<string> | undefined | null,
379 options: ExecFileOptionsWithOtherEncoding,
380 callback: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void,
381 ): ChildProcess;
382
383 // `options` without an `encoding` means stdout/stderr are definitely `string`.
384 function execFile(file: string, options: ExecFileOptions, callback: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess;
385 function execFile(
386 file: string,
387 args: ReadonlyArray<string> | undefined | null,
388 options: ExecFileOptions,
389 callback: (error: ExecException | null, stdout: string, stderr: string) => void
390 ): ChildProcess;
391
392 // fallback if nothing else matches. Worst case is always `string | Buffer`.
393 function execFile(
394 file: string,
395 options: (BaseEncodingOptions & ExecFileOptions) | undefined | null,
396 callback: ((error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null,
397 ): ChildProcess;
398 function execFile(
399 file: string,
400 args: ReadonlyArray<string> | undefined | null,
401 options: (BaseEncodingOptions & ExecFileOptions) | undefined | null,
402 callback: ((error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null,
403 ): ChildProcess;
404
405 // NOTE: This namespace provides design-time support for util.promisify. Exported members do not exist at runtime.
406 namespace execFile {
407 function __promisify__(file: string): PromiseWithChild<{ stdout: string, stderr: string }>;
408 function __promisify__(file: string, args: string[] | undefined | null): PromiseWithChild<{ stdout: string, stderr: string }>;
409 function __promisify__(file: string, options: ExecFileOptionsWithBufferEncoding): PromiseWithChild<{ stdout: Buffer, stderr: Buffer }>;
410 function __promisify__(file: string, args: string[] | undefined | null, options: ExecFileOptionsWithBufferEncoding): PromiseWithChild<{ stdout: Buffer, stderr: Buffer }>;
411 function __promisify__(file: string, options: ExecFileOptionsWithStringEncoding): PromiseWithChild<{ stdout: string, stderr: string }>;
412 function __promisify__(file: string, args: string[] | undefined | null, options: ExecFileOptionsWithStringEncoding): PromiseWithChild<{ stdout: string, stderr: string }>;
413 function __promisify__(file: string, options: ExecFileOptionsWithOtherEncoding): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>;
414 function __promisify__(file: string, args: string[] | undefined | null, options: ExecFileOptionsWithOtherEncoding): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>;
415 function __promisify__(file: string, options: ExecFileOptions): PromiseWithChild<{ stdout: string, stderr: string }>;
416 function __promisify__(file: string, args: string[] | undefined | null, options: ExecFileOptions): PromiseWithChild<{ stdout: string, stderr: string }>;
417 function __promisify__(file: string, options: (BaseEncodingOptions & ExecFileOptions) | undefined | null): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>;
418 function __promisify__(
419 file: string,
420 args: string[] | undefined | null,
421 options: (BaseEncodingOptions & ExecFileOptions) | undefined | null,
422 ): PromiseWithChild<{ stdout: string | Buffer, stderr: string | Buffer }>;
423 }
424
425 interface ForkOptions extends ProcessEnvOptions, MessagingOptions {
426 execPath?: string;
427 execArgv?: string[];
428 silent?: boolean;
429 stdio?: StdioOptions;
430 detached?: boolean;
431 windowsVerbatimArguments?: boolean;
432 }
433 function fork(modulePath: string, args?: ReadonlyArray<string>, options?: ForkOptions): ChildProcess;
434
435 interface SpawnSyncOptions extends CommonSpawnOptions {
436 input?: string | NodeJS.ArrayBufferView;
437 killSignal?: NodeJS.Signals | number;
438 maxBuffer?: number;
439 encoding?: BufferEncoding;
440 }
441 interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions {
442 encoding: BufferEncoding;
443 }
444 interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions {
445 encoding: BufferEncoding; // specify `null`.
446 }
447 interface SpawnSyncReturns<T> {
448 pid: number;
449 output: string[];
450 stdout: T;
451 stderr: T;
452 status: number | null;
453 signal: NodeJS.Signals | null;
454 error?: Error;
455 }
456 function spawnSync(command: string): SpawnSyncReturns<Buffer>;
457 function spawnSync(command: string, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns<string>;
458 function spawnSync(command: string, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns<Buffer>;
459 function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns<Buffer>;
460 function spawnSync(command: string, args?: ReadonlyArray<string>, options?: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns<string>;
461 function spawnSync(command: string, args?: ReadonlyArray<string>, options?: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns<Buffer>;
462 function spawnSync(command: string, args?: ReadonlyArray<string>, options?: SpawnSyncOptions): SpawnSyncReturns<Buffer>;
463
464 interface ExecSyncOptions extends CommonOptions {
465 input?: string | Uint8Array;
466 stdio?: StdioOptions;
467 shell?: string;
468 killSignal?: NodeJS.Signals | number;
469 maxBuffer?: number;
470 encoding?: BufferEncoding;
471 }
472 interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions {
473 encoding: BufferEncoding;
474 }
475 interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions {
476 encoding: BufferEncoding; // specify `null`.
477 }
478 function execSync(command: string): Buffer;
479 function execSync(command: string, options?: ExecSyncOptionsWithStringEncoding): string;
480 function execSync(command: string, options?: ExecSyncOptionsWithBufferEncoding): Buffer;
481 function execSync(command: string, options?: ExecSyncOptions): Buffer;
482
483 interface ExecFileSyncOptions extends CommonOptions {
484 input?: string | NodeJS.ArrayBufferView;
485 stdio?: StdioOptions;
486 killSignal?: NodeJS.Signals | number;
487 maxBuffer?: number;
488 encoding?: BufferEncoding;
489 shell?: boolean | string;
490 }
491 interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions {
492 encoding: BufferEncoding;
493 }
494 interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions {
495 encoding: BufferEncoding; // specify `null`.
496 }
497 function execFileSync(command: string): Buffer;
498 function execFileSync(command: string, options?: ExecFileSyncOptionsWithStringEncoding): string;
499 function execFileSync(command: string, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer;
500 function execFileSync(command: string, options?: ExecFileSyncOptions): Buffer;
501 function execFileSync(command: string, args?: ReadonlyArray<string>, options?: ExecFileSyncOptionsWithStringEncoding): string;
502 function execFileSync(command: string, args?: ReadonlyArray<string>, options?: ExecFileSyncOptionsWithBufferEncoding): Buffer;
503 function execFileSync(command: string, args?: ReadonlyArray<string>, options?: ExecFileSyncOptions): Buffer;
504}