import { BlockWithoutTransactionData, FilterResult } from "web3";
import { Address, Hash } from "./commonTypes";
import { Web3 } from "./utils";
/**
 * Utils not meant to be exported to the public
 */
export declare class UtilsInternal {
    static sleep(milliseconds: number): Promise<any>;
    static ensureArray<T>(arr: Array<T> | T): Array<T>;
    /**
     * Returns the last mined block in the chain.
     */
    static lastBlock(): Promise<BlockWithoutTransactionData>;
    /**
     * Returns the date of the last mined block in the chain.
     */
    static lastBlockDate(): Promise<Date>;
    /**
     * Returns the last mined block in the chain.
     */
    static lastBlockNumber(): Promise<number>;
    /**
     * For environments that don't allow synchronous functions
     * @param filter
     */
    static stopWatchingAsync(filter: FilterResult): Promise<any>;
    static getRandomNumber(): number;
    static getWeb3Sync(): Web3;
    static isNullAddress(address: Address): boolean;
    static isNullHash(hash: Hash): boolean;
    /**
     * Returns promise of the maximum gasLimit that we dare to ever use, given the
     * current state of the chain.
     */
    static computeMaxGasLimit(): Promise<number>;
}
