/// <reference types="node" />
import WebSocket from 'ws';
import { Method, MessageHandler, HandlerResult } from '../interfaces';
/**
 * JSON RPC 2 conform message handler
 *
 * @implements {MessageHandler}
 */
declare class JSONRPC2MessageHandler implements MessageHandler {
    /**
     * Handles an incoming message conforming to the JSON RPC 2 protocol
     *
     * @param message {string | Buffer} - message to be parsed, validated and evaluated
     * @param registeredMethods {Map<string, Method>} - registered namespace methods
     * @returns {HandlerResult} - result object to be processed
     */
    handle(message: string | Buffer, registeredMethods: Map<string, Method>): HandlerResult;
    /**
     * Function to process handler result. Should call rpc and return a JSON RPC 2 conform response
     *
     * @param context {any} - context of the calling class to properly handle 'this' in the function call
     * @param handlerResult {HandlerResult} - handler result from same message handler
     * @returns {Promise<WebSocket.Data | undefined>}
     */
    process(context: any, handlerResult: HandlerResult): Promise<WebSocket.Data | undefined>;
}
export default JSONRPC2MessageHandler;
