/*
This file is part of web3.js.
web3.js is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
web3.js is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see .
*/
/**
* @file index.d.ts
* @author Josh Stevens , Samuel Furter
* @date 2018
*/
import * as net from 'net';
import { Bzz } from 'web3-bzz';
import { BatchRequest, provider, Providers, Extension } from 'web3-core';
import { Eth } from 'web3-eth';
import { Personal } from 'web3-eth-personal';
import { Network } from 'web3-net';
import { Shh } from 'web3-shh';
import { Utils } from 'web3-utils';
export default class Web3 {
constructor();
constructor(provider: provider);
constructor(provider: provider, net: net.Socket);
static modules: Modules;
readonly givenProvider: any;
static readonly givenProvider: any;
defaultAccount: string | null;
defaultBlock: string | number;
readonly currentProvider: provider;
setProvider(provider: provider): boolean;
BatchRequest: new () => BatchRequest;
static readonly providers: Providers;
utils: Utils;
eth: Eth;
shh: Shh;
bzz: Bzz;
version: string;
static readonly version: string;
static readonly utils: Utils;
extend(extension: Extension): any;
}
export interface Modules {
Eth: new (provider: provider, net: net.Socket) => Eth;
Net: new (provider: provider, net: net.Socket) => Network;
Personal: new (provider: provider, net: net.Socket) => Personal;
Shh: new (provider: provider, net: net.Socket) => Shh;
Bzz: new (provider: provider) => Bzz;
}