/// <reference types="node" />
import { Roster, WebSocketConnection } from "../network";
import { ViewCallResponse } from "./proto";
/**
 * BEvm service
 */
export declare class BEvmRPC {
    static serviceName: string;
    static anyPromise<T>(promises: Array<Promise<T>>): Promise<T>;
    readonly conns: WebSocketConnection[];
    private timeout;
    constructor(roster: Roster);
    /**
     * Set a new timeout value for future requests.
     *
     * @param value Timeout in [ms]
     */
    setTimeout(value: number): void;
    /**
     * Execute a view method (read-only)
     *
     * @param byzcoinId         ByzCoin ID
     * @param bevmInstanceId    BEvm instance ID
     * @param accountAddress    Address of the EVM account
     * @param contractAddress   Address of the smart contract
     * @param callData          ABI-packed call arguments
     * @param minBlockIndex     Minimum block index that nodes must have to
     *                          execute the view method
     *
     * @return Result of the view method execution
     */
    viewCall(byzcoinId: Buffer, bevmInstanceId: Buffer, accountAddress: Buffer, contractAddress: Buffer, callData: Buffer, minBlockIndex?: number): Promise<ViewCallResponse>;
}
