/** * Abstract class for process discovery and communication */ export declare type IPCRequestHandler = (data: any) => Promise; export declare type ProcessListener = (data: T) => void; export interface IProcessRequest { requestId: string; method: string; data: any; } export interface IProcessResponse { error?: any; data?: any; } export interface IProcessState { [key: string]: any; } export interface IPCParams { timeout?: number; state?: T; processId: string; instanceName?: string; healthCheckInterval?: number; } export interface IProcessInstance { ttl: number; state: T; } export interface IProcessInfo { id: string; state: T; } export declare abstract class IPCManager { processId: string; timeout: number; healthCheckInterval: number; requestHandlers: { [method: string]: IPCRequestHandler; }; state: S; instances: Map>; private healthCheckTimeout?; private instanceName; constructor(params: IPCParams); init(): void; startHealthCheck(): void; terminate(): void; stopHealthCheck(): void; publishState(): void; private addInstance; private updateInstanceState; private deleteInstance; requestProcess(id: string | number, method: string, data: L): Promise; onRequest(method: string, handler: IPCRequestHandler): void; pids(): string[]; abstract subscribe(channel: string, listener: ProcessListener): void; abstract unsubscribe(channel: string): void; abstract publish(channel: string, data: T): void; abstract close(): void; }