/// import { ChildProcess } from 'child_process'; import { Component } from '../..'; export interface IProcessComponentMessage { event: string; reply?: string; payload: any[]; } export interface IProcessState { declarations?: string[]; subscriptions?: string[]; pid: number; } /** * The ProcessComponent provides an abstraction on a `process` * which holds a stateful connection to another ProcessComponent via IPC. */ export declare class ProcessComponent extends Component { private process; private relaying; constructor(emitter: NodeJS.Process | ChildProcess); readonly state: IProcessState; syncState(state?: IProcessState): Promise; emit: (event: string, ...payload: any[]) => Promise; emitToProcess: (event: string, ...payload: any[]) => IProcessComponentMessage; emitToProcessWithReply: (event: string, ...payload: any[]) => Promise; emitToSelf: (event: string, ...payload: any[]) => any; private readProcessComponentState({subscriptions, declarations}); private relaySubscriptionsToProcess(); }