import { ChildProcess, SpawnOptions } from 'child_process' export interface TinyspawnOptions extends SpawnOptions { json?: boolean reject?: boolean } export interface TinyspawnResult extends Omit { stdout: Stdout stderr: string /** Only exists if `reject` was false and the child process exited with a non-zero code. */ error?: Error } export interface TinyspawnPromise extends Promise>, ChildProcess {} export type { /** @deprecated Use `TinyspawnPromise` instead. */ TinyspawnPromise as SubprocessPromise } type Tinyspawn = [StdoutDefault] extends [string] ? { ( input: string, args?: (string | false | null | undefined)[], options?: TinyspawnOptions & { json?: false | undefined } ): TinyspawnPromise ( input: string, options?: TinyspawnOptions & { json?: false | undefined } ): TinyspawnPromise ( input: string, args: (string | false | null | undefined)[] | undefined, options: TinyspawnOptions & { json: boolean } ): TinyspawnPromise ( input: string, options: TinyspawnOptions & { json: boolean } ): TinyspawnPromise } : { ( input: string, args: (string | false | null | undefined)[] | undefined, options: TinyspawnOptions & { json: false } ): TinyspawnPromise (input: string, options: TinyspawnOptions & { json: false }): TinyspawnPromise ( input: string, args?: (string | false | null | undefined)[] | TinyspawnOptions, options?: TinyspawnOptions ): TinyspawnPromise } declare const $: Tinyspawn & { extend(defaults?: TinyspawnOptions & { json?: false | undefined }): Tinyspawn extend(defaults: TinyspawnOptions & { json: boolean }): Tinyspawn json: Tinyspawn } export default $