import { FileDescriptions, StrykerOptions } from '@stryker-mutator/api/core'; import { Disposable, InjectableClass, InjectionToken } from 'typed-inject'; import { LoggingServerAddress } from '../logging/index.js'; import { ChildProcessContext } from './child-process-proxy-worker.js'; import { IdGenerator } from './id-generator.js'; import { LoggerFactoryMethod } from '@stryker-mutator/api/logging'; type Func = (...args: TS) => R; type PromisifiedFunc = (...args: TS) => Promise; export type Promisified = { [K in keyof T]: T[K] extends PromisifiedFunc ? T[K] : T[K] extends Func ? PromisifiedFunc : () => Promise; }; export declare class ChildProcessProxy implements Disposable { readonly proxy: Promisified; private readonly worker; private readonly initTask; private disposeTask; private fatalError; private readonly workerTasks; private workerTaskCounter; private readonly log; private readonly stdoutBuilder; private readonly stderrBuilder; private isDisposed; private readonly initMessage; private constructor(); /** * @description Creates a proxy where each function of the object created using the constructorFunction arg is ran inside of a child process */ static create>>(modulePath: string, loggingServerAddress: LoggingServerAddress, options: StrykerOptions, fileDescriptions: FileDescriptions, pluginModulePaths: readonly string[], workingDirectory: string, injectableClass: InjectableClass, execArgv: string[], getLogger: LoggerFactoryMethod, idGenerator: IdGenerator): ChildProcessProxy; private send; private initProxy; private forward; private listenForMessages; private listenToStdoutAndStderr; get stdout(): string; get stderr(): string; private reportError; private readonly handleUnexpectedExit; private readonly handleError; private innerProcessIsCrashed; dispose(): Promise; private logUnidentifiedMessage; } export {}; //# sourceMappingURL=child-process-proxy.d.ts.map