import Web3 from 'web3';
import { Provider } from 'web3/providers';
import { Contracts } from './lib/Contracts';
import { Interest } from './lib/Interest';
import { Admin } from './modules/Admin';
import { ArbitrumGasInfo } from './modules/ArbitrumGasInfo';
import { BorrowPositionProxyV1 } from './modules/BorrowPositionProxyV1';
import { BorrowPositionProxyV2 } from './modules/BorrowPositionProxyV2';
import { DepositProxy } from './modules/DepositProxy';
import { Expiry } from './modules/Expiry';
import { GenericTraderProxyV1 } from './modules/GenericTraderProxyV1';
import { Getters } from './modules/Getters';
import { LiquidatorAssetRegistry } from './modules/LiquidatorAssetRegistry';
import { LiquidatorProxyV1 } from './modules/LiquidatorProxyV1';
import { LiquidatorProxyV4WithGenericTrader } from './modules/LiquidatorProxyV4WithGenericTrader';
import { IsolationModeUnwrapper } from './modules/IsolationModeUnwrapper';
import { Logs } from './modules/Logs';
import { MultiCall } from './modules/MultiCall';
import { Operation } from './modules/operate/Operation';
import { ChainlinkPriceOracleV1 } from './modules/oracles/ChainlinkPriceOracleV1';
import { Permissions } from './modules/Permissions';
import { SignedOperations } from './modules/SignedOperations';
import { StandardActions } from './modules/StandardActions';
import { SubgraphAPI } from './modules/SubgraphAPI';
import { Token } from './modules/Token';
import { TransferProxy } from './modules/TransferProxy';
import { WalletLogin } from './modules/WalletLogin';
import { PayableToken } from './modules/PayableToken';
import { address, DolomiteMarginOptions, EthereumAccount } from './types';
import { IsolationModeWrapper } from './modules/IsolationModeWrapper';
import { ExpiryProxy } from './modules/ExpiryProxy';
import { MantleGasInfo } from './modules/MantleGasInfo';
export declare class DolomiteMargin {
    networkId: number;
    web3: Web3;
    arbitrumGasInfo?: ArbitrumGasInfo;
    admin: Admin;
    borrowPositionProxyV1: BorrowPositionProxyV1;
    borrowPositionProxyV2: BorrowPositionProxyV2;
    api: SubgraphAPI;
    chainlinkPriceOracle: ChainlinkPriceOracleV1;
    contracts: Contracts;
    depositWithdrawalProxy: DepositProxy;
    expiry: Expiry;
    expiryProxy: ExpiryProxy;
    genericTraderProxyV1: GenericTraderProxyV1;
    getters: Getters;
    interest: Interest;
    liquidatorAssetRegistry: LiquidatorAssetRegistry;
    liquidatorProxyV1: LiquidatorProxyV1;
    liquidatorProxyV4WithGenericTrader: LiquidatorProxyV4WithGenericTrader;
    logs: Logs;
    mantleGasInfo?: MantleGasInfo;
    multiCall: MultiCall;
    operation: Operation;
    payableToken: PayableToken;
    permissions: Permissions;
    signedOperations: SignedOperations;
    standardActions: StandardActions;
    token: Token;
    transferProxy: TransferProxy;
    walletLogin: WalletLogin;
    constructor(provider: Provider | string, networkId?: number, options?: DolomiteMarginOptions);
    /**
     * @return The address of the main DolomiteMargin smart contract
     */
    get address(): address;
    setProvider(provider: Provider, networkId: number): void;
    setDefaultAccount(account: address): void;
    getDefaultAccount(): address;
    loadAccount(account: EthereumAccount): void;
    getIsolationModeUnwrapper(unwrapperAddress: address): IsolationModeUnwrapper;
    getIsolationModeWrapper(unwrapperAddress: address): IsolationModeWrapper;
    protected createContractsModule(provider: Provider, networkId: number, web3: Web3, options: DolomiteMarginOptions): any;
}
