import { Remote, RemoteDesc, RPC, RPCAsyncContainerDictionary, RPCConfig, RPCEventRegistry } from './interfaces';
/**
 * Where `RemoteType` is the description of the interface you _expect_ to be
 * exposed *by the "other side"*
 * @param config
 * @param remote optional remote to expose *on the "other side"*
 */
export declare function create<RemoteType>(config: RPCConfig, remote?: Remote<any>, remoteDesc?: RemoteDesc): RPC<RemoteType>;
export declare function flushCallbacks(callbacks: RPCAsyncContainerDictionary, errorHandlers: RPCEventRegistry, reason?: string): void;
export declare function validateRemote(r: Object): Remote<any>;
export declare function validateConfig(c: RPCConfig, remote: Remote<any>): RPCConfig;
export declare function extend(): void;
