///
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();
}