import Web3 from 'web3';
import { TransactionObject } from 'web3/eth/types';
import { Provider } from 'web3/providers';
import { AAVECopyCatAltCoinInterestSetter } from '../../build/wrappers/AAVECopyCatAltCoinInterestSetter';
import { AAVECopyCatStableCoinInterestSetter } from '../../build/wrappers/AAVECopyCatStableCoinInterestSetter';
import { AccountValuesReader } from '../../build/wrappers/AccountValuesReader';
import { ArbitrumMultiCall } from '../../build/wrappers/ArbitrumMultiCall';
import { BorrowPositionProxyV1 } from '../../build/wrappers/BorrowPositionProxyV1';
import { BorrowPositionProxyV2 } from '../../build/wrappers/BorrowPositionProxyV2';
import { ChainlinkPriceOracleV1 } from '../../build/wrappers/ChainlinkPriceOracleV1';
import { DepositWithdrawalProxy } from '../../build/wrappers/DepositWithdrawalProxy';
import { DolomiteMargin } from '../../build/wrappers/DolomiteMargin';
import { DoubleExponentInterestSetter } from '../../build/wrappers/DoubleExponentInterestSetter';
import { EventEmitterRegistry } from '../../build/wrappers/EventEmitterRegistry';
import { Expiry } from '../../build/wrappers/Expiry';
import { ExpiryProxy } from '../../build/wrappers/ExpiryProxy';
import { GenericTraderProxyV1 } from '../../build/wrappers/GenericTraderProxyV1';
import { IAccountRiskOverrideSetter } from '../../build/wrappers/IAccountRiskOverrideSetter';
import { IArbitrumGasInfo } from '../../build/wrappers/IArbitrumGasInfo';
import { IERC20Detailed as ERC20 } from '../../build/wrappers/IERC20Detailed';
import { IInterestSetter as InterestSetter } from '../../build/wrappers/IInterestSetter';
import { IIsolationModeUnwrapperTrader } from '../../build/wrappers/IIsolationModeUnwrapperTrader';
import { IIsolationModeWrapperTrader } from '../../build/wrappers/IIsolationModeWrapperTrader';
import { IMantleGasInfo } from '../../build/wrappers/IMantleGasInfo';
import { IOracleSentinel } from '../../build/wrappers/IOracleSentinel';
import { IPriceOracle as PriceOracle } from '../../build/wrappers/IPriceOracle';
import { LiquidatorAssetRegistry } from '../../build/wrappers/LiquidatorAssetRegistry';
import { LiquidatorProxyV1 } from '../../build/wrappers/LiquidatorProxyV1';
import { LiquidatorProxyV4WithGenericTrader } from '../../build/wrappers/LiquidatorProxyV4WithGenericTrader';
import { MultiCall } from '../../build/wrappers/MultiCall';
import { PayableProxy as PayableProxy } from '../../build/wrappers/PayableProxy';
import { PolynomialInterestSetter } from '../../build/wrappers/PolynomialInterestSetter';
import { SignedOperationProxy } from '../../build/wrappers/SignedOperationProxy';
import { TransferProxy } from '../../build/wrappers/TransferProxy';
import { WETH } from '../../build/wrappers/WETH';
import { address, ConfirmationType, ContractCallOptions, ContractConstantCallOptions, DolomiteMarginOptions, TxResult } from '../types';
export declare class Contracts {
    aaveCopyCatAltCoinInterestSetter: AAVECopyCatAltCoinInterestSetter;
    aaveCopyCatStableCoinInterestSetter: AAVECopyCatStableCoinInterestSetter;
    accountValuesReader: AccountValuesReader;
    arbitrumGasInfo: IArbitrumGasInfo;
    arbitrumMultiCall: ArbitrumMultiCall;
    borrowPositionProxyV1: BorrowPositionProxyV1;
    borrowPositionProxyV2: BorrowPositionProxyV2;
    chainlinkPriceOracleV1: ChainlinkPriceOracleV1;
    depositProxy: DepositWithdrawalProxy;
    dolomiteMargin: DolomiteMargin;
    doubleExponentInterestSetter: DoubleExponentInterestSetter;
    erc20: ERC20;
    expiry: Expiry;
    eventEmitterRegistry: EventEmitterRegistry;
    expiryProxy: ExpiryProxy;
    genericTraderProxyV1: GenericTraderProxyV1;
    interestSetter: InterestSetter;
    liquidatorAssetRegistry: LiquidatorAssetRegistry;
    liquidatorProxyV1: LiquidatorProxyV1;
    liquidatorProxyV4WithGenericTrader: LiquidatorProxyV4WithGenericTrader;
    mantleGasInfo: IMantleGasInfo;
    multiCall: MultiCall;
    payableProxy: PayableProxy;
    payableToken: WETH;
    polynomialInterestSetter: PolynomialInterestSetter;
    priceOracle: PriceOracle;
    signedOperationProxy: SignedOperationProxy;
    transferProxy: TransferProxy;
    protected provider: Provider;
    protected networkId: number;
    protected web3: Web3;
    protected blockGasLimit: number;
    protected readonly autoGasMultiplier: number;
    protected readonly defaultConfirmations: number;
    protected readonly confirmationType: ConfirmationType;
    protected readonly defaultGas: string | number;
    protected readonly defaultGasPrice: string | number;
    constructor(provider: Provider, networkId: number, web3: Web3, options: DolomiteMarginOptions);
    getNetworkId(): number;
    getIsolationModeUnwrapper(contractAddress: address): IIsolationModeUnwrapperTrader;
    getIsolationModeWrapper(contractAddress: address): IIsolationModeWrapperTrader;
    getOracleSentinel(contractAddress: address): IOracleSentinel;
    getAccountRiskOverrideSetter(contractAddress: address): IAccountRiskOverrideSetter;
    setProvider(provider: Provider, networkId: number): void;
    setDefaultAccount(account: address): void;
    callContractFunction<T>(method: TransactionObject<T>, options?: ContractCallOptions): Promise<TxResult>;
    callConstantContractFunction<T>(method: TransactionObject<T>, options?: ContractConstantCallOptions): Promise<T>;
    protected setContractProvider(contract: any, contractJson: any, provider: Provider, networkId: number, overrides: any): void;
    private setGasLimit;
}
