import { Dictionary } from 'ts-essentials';
import * as t from 'io-ts';
import { Request } from 'express';
declare type RPCSchema = Dictionary<{
    parameters: t.Type<any>;
    returns: t.Type<any>;
}>;
declare type RPCExecutors = Dictionary<Function>;
export declare function sanitizeRPCEnvelope(): (_data: any, req: Request<import("express-serve-static-core").ParamsDictionary>) => void;
export declare function sanitizeRPC<T extends t.Any>(schema: RPCSchema): (data: unknown, req: Request) => t.OutputOf<T>;
export declare function executeRPC(executors: RPCExecutors): (data: unknown, req: Request<import("express-serve-static-core").ParamsDictionary>) => Promise<any>;
export declare function respondRPC(schema: RPCSchema): (data: unknown, req: Request<import("express-serve-static-core").ParamsDictionary>) => import("@restless/restless").ResponseFunction;
export {};
