import Web3 from 'web3'; import { ContractSendMethod, Contract } from 'web3-eth-contract'; import { CallOptions, PerpetualMarket, Provider, SendOptions, TxResult, address } from '../lib/types'; interface Json { abi: any; contractName: string; networks: { [network: number]: any; }; } interface ContractInfo { contract: Contract; json: Json; isTest: boolean; } export declare class Contracts { private defaultOptions; private _cumulativeGasUsed; private _gasUsedByFunction; private _countGasUsage; protected web3: Web3; market: PerpetualMarket; networkId: number; contractsList: ContractInfo[]; perpetualProxy: Contract; perpetualV1: Contract; p1FundingOracle: Contract; p1InverseFundingOracle: Contract; p1ChainlinkOracle: Contract; p1MakerOracle: Contract; p1MirrorOracle: Contract; p1OracleInverter: Contract; p1Orders: Contract; p1InverseOrders: Contract; p1Deleveraging: Contract; p1Liquidation: Contract; p1CurrencyConverterProxy: Contract; p1LiquidatorProxy: Contract; p1SoloBridgeProxy: Contract; p1WethProxy: Contract; erc20: Contract; makerOracle: Contract; weth: Contract; constructor(provider: Provider, market: PerpetualMarket, networkId: number, web3: Web3, sendOptions?: SendOptions); getCumulativeGasUsed(): number; resetGasUsed(): void; /** * Get a list of gas used by function since last call to resetGasUsed(). */ getGasUsedByFunction(): Iterable<{ name: string; gasUsed: number; }>; setProvider(provider: Provider, networkId: number): void; setDefaultAccount(account: address): void; call(method: ContractSendMethod, specificOptions?: CallOptions): Promise; send(method: ContractSendMethod, specificOptions?: SendOptions): Promise; protected addContract(json: Json, isTest?: boolean): Contract; private setContractProvider; private _send; private estimateGas; private toEstimateOptions; private toCallOptions; private toNativeSendOptions; private normalizeResponse; } export {};