import { Rpc } from './rpc';
import { RpcChannel } from './rpc-channel';
import { RpcInbound } from './rpc-inbound';
export declare class RpcInboundClient {
    /**
     * The generic command to make inbound request of RPC.
     * (From module to shell or from child to parent window.)
     *
     * @param rpc the rpc instance.
     * @param command the command name.
     * @param version the version string.
     * @param data the TData object.
     * @return Promise<TResult> the promise object.
     */
    static call<TData, TResult>(rpc: Rpc, command: string, version: string, data: TData): Promise<TResult>;
    /**
     * The generic command to make inbound request of inbound instance.
     * (From shell to module or from parent to child window.)
     *
     * @param rpcChannel the rpc channel instance.
     * @param inbound the RPC inbound instance.
     * @param command the command name.
     * @param version the version string.
     * @param data the TData object.
     * @return Promise<TResult> the promise object.
     */
    static callInbound<TData, TResult>(rpcChannel: RpcChannel, inbound: RpcInbound, command: string, version: string, data: TData): Promise<TResult>;
}
