import { IPipeProcMessage } from "../common/messages";
import { IWriteBuffer } from "./writeBuffer";
import { IWorker } from "./workerManager";
import { ServerSocket } from "../socket/bind";
export interface IMessageRegistry {
    [key: string]: {
        messageType: string;
        replySuccess: string;
        replyError: string;
        writeOp: boolean;
        listener: messageListener<any, any>;
    };
}
export declare type message<T, U> = {
    messageType: string;
    replySuccess: string;
    replyError: string;
    writeOp: boolean;
    listener: messageListener<T, U>;
};
export declare type messageListener<T, U> = ((data: T, callback: (errStatus?: string | null, reply?: U) => void) => void);
export declare function sendMessageToWorker(msg: IPipeProcMessage, worker: IWorker, cb?: () => void): void;
export declare function registerMessage<T, U>(registry: IMessageRegistry, newMessage: message<T, U>): void;
export declare function initializeMessages(writeBuffer: IWriteBuffer, registry: IMessageRegistry, address: string, tls: {
    key: string;
    cert: string;
    ca: string;
} | false, callback: (err: Error | null, socketServer?: ServerSocket) => void): void;
