///
import { Logger } from '../../logger';
import { RPCConfig } from '../../types';
export interface RequestContext {
params: Record;
chainID: Buffer;
logger: Logger;
}
export type Handler = (context: RequestContext) => Promise;
export type NotFoundHandler = (namespace: string, mehtod: string, context: RequestContext) => Promise;
export declare class RPCServer {
private readonly _config;
private readonly _ipcServer?;
private readonly _wsServer?;
private readonly _httpServer?;
private readonly _rpcHandler;
private _notFoundHandler?;
private _logger;
private _chainID;
constructor(dataPath: string, config: RPCConfig);
init(options: {
logger: Logger;
chainID: Buffer;
}): void;
start(): Promise;
stop(): void;
publish(eventName: string, data: Record): Promise;
registerEndpoint(namespace: string, method: string, handler: Handler): void;
registerNotFoundEndpoint(handler: NotFoundHandler): void;
private _handleIPCRequest;
private _handleRequest;
private _publishIPC;
private _publishWS;
private _getHandler;
private _isAllowedMethod;
}