import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
import { Log } from "@ethersproject/abstract-provider";
import { BytesLike } from "@ethersproject/bytes";
import { Overrides, CallOverrides, PayableOverrides, EventFilter } from "@ethersproject/contracts";
import { _TypedLiquityContract, _TypedLogDescription } from "../src/contracts";
interface ActivePoolCalls {
    NAME(_overrides?: CallOverrides): Promise<string>;
    borrowerOperationsAddress(_overrides?: CallOverrides): Promise<string>;
    defaultPoolAddress(_overrides?: CallOverrides): Promise<string>;
    getETH(_overrides?: CallOverrides): Promise<BigNumber>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    getZUSDDebt(_overrides?: CallOverrides): Promise<BigNumber>;
    stabilityPoolAddress(_overrides?: CallOverrides): Promise<string>;
    troveManagerAddress(_overrides?: CallOverrides): Promise<string>;
}
interface ActivePoolTransactions {
    decreaseZUSDDebt(_amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    increaseZUSDDebt(_amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    sendETH(_account: string, _amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    setAddresses(_borrowerOperationsAddress: string, _troveManagerAddress: string, _stabilityPoolAddress: string, _defaultPoolAddress: string, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
}
export interface ActivePool extends _TypedLiquityContract<ActivePoolCalls, ActivePoolTransactions> {
    readonly address: string;
    readonly filters: {
        ActivePoolAddressChanged(_newActivePoolAddress?: null): EventFilter;
        ActivePoolETHBalanceUpdated(_ETH?: null): EventFilter;
        ActivePoolZUSDDebtUpdated(_ZUSDDebt?: null): EventFilter;
        BorrowerOperationsAddressChanged(_newBorrowerOperationsAddress?: null): EventFilter;
        DefaultPoolAddressChanged(_newDefaultPoolAddress?: null): EventFilter;
        ETHBalanceUpdated(_newBalance?: null): EventFilter;
        EtherSent(_to?: null, _amount?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        StabilityPoolAddressChanged(_newStabilityPoolAddress?: null): EventFilter;
        TroveManagerAddressChanged(_newTroveManagerAddress?: null): EventFilter;
        ZUSDBalanceUpdated(_newBalance?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "ActivePoolAddressChanged"): _TypedLogDescription<{
        _newActivePoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "ActivePoolETHBalanceUpdated"): _TypedLogDescription<{
        _ETH: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "ActivePoolZUSDDebtUpdated"): _TypedLogDescription<{
        _ZUSDDebt: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "BorrowerOperationsAddressChanged"): _TypedLogDescription<{
        _newBorrowerOperationsAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "DefaultPoolAddressChanged"): _TypedLogDescription<{
        _newDefaultPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "ETHBalanceUpdated"): _TypedLogDescription<{
        _newBalance: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "EtherSent"): _TypedLogDescription<{
        _to: string;
        _amount: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "StabilityPoolAddressChanged"): _TypedLogDescription<{
        _newStabilityPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "TroveManagerAddressChanged"): _TypedLogDescription<{
        _newTroveManagerAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "ZUSDBalanceUpdated"): _TypedLogDescription<{
        _newBalance: BigNumber;
    }>[];
}
interface BorrowerOperationsCalls {
    BORROWING_FEE_FLOOR(_overrides?: CallOverrides): Promise<BigNumber>;
    DECIMAL_PRECISION(_overrides?: CallOverrides): Promise<BigNumber>;
    MIN_NET_DEBT(_overrides?: CallOverrides): Promise<BigNumber>;
    NAME(_overrides?: CallOverrides): Promise<string>;
    ZUSD_GAS_COMPENSATION(_overrides?: CallOverrides): Promise<BigNumber>;
    _100pct(_overrides?: CallOverrides): Promise<BigNumber>;
    activePool(_overrides?: CallOverrides): Promise<string>;
    defaultPool(_overrides?: CallOverrides): Promise<string>;
    feeDistributor(_overrides?: CallOverrides): Promise<string>;
    getCompositeDebt(_debt: BigNumberish, _overrides?: CallOverrides): Promise<BigNumber>;
    getEntireSystemColl(_overrides?: CallOverrides): Promise<BigNumber>;
    getEntireSystemDebt(_overrides?: CallOverrides): Promise<BigNumber>;
    getMassetManager(_overrides?: CallOverrides): Promise<string>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    liquityBaseParams(_overrides?: CallOverrides): Promise<string>;
    massetManager(_overrides?: CallOverrides): Promise<string>;
    priceFeed(_overrides?: CallOverrides): Promise<string>;
    sortedTroves(_overrides?: CallOverrides): Promise<string>;
    troveManager(_overrides?: CallOverrides): Promise<string>;
    zeroStaking(_overrides?: CallOverrides): Promise<string>;
    zeroStakingAddress(_overrides?: CallOverrides): Promise<string>;
    zusdToken(_overrides?: CallOverrides): Promise<string>;
}
interface BorrowerOperationsTransactions {
    addColl(_upperHint: string, _lowerHint: string, _overrides?: PayableOverrides): Promise<void>;
    adjustNueTrove(_maxFeePercentage: BigNumberish, _collWithdrawal: BigNumberish, _ZUSDChange: BigNumberish, _isDebtIncrease: boolean, _upperHint: string, _lowerHint: string, _permitParams: {
        deadline: BigNumberish;
        v: BigNumberish;
        r: BytesLike;
        s: BytesLike;
    }, _overrides?: PayableOverrides): Promise<void>;
    adjustTrove(_maxFeePercentage: BigNumberish, _collWithdrawal: BigNumberish, _ZUSDChange: BigNumberish, _isDebtIncrease: boolean, _upperHint: string, _lowerHint: string, _overrides?: PayableOverrides): Promise<void>;
    claimCollateral(_overrides?: Overrides): Promise<void>;
    closeNueTrove(_permitParams: {
        deadline: BigNumberish;
        v: BigNumberish;
        r: BytesLike;
        s: BytesLike;
    }, _overrides?: Overrides): Promise<void>;
    closeTrove(_overrides?: Overrides): Promise<void>;
    moveETHGainToTrove(_borrower: string, _upperHint: string, _lowerHint: string, _overrides?: PayableOverrides): Promise<void>;
    openNueTrove(_maxFeePercentage: BigNumberish, _ZUSDAmount: BigNumberish, _upperHint: string, _lowerHint: string, _overrides?: PayableOverrides): Promise<void>;
    openTrove(_maxFeePercentage: BigNumberish, _ZUSDAmount: BigNumberish, _upperHint: string, _lowerHint: string, _overrides?: PayableOverrides): Promise<void>;
    repayZUSD(_ZUSDAmount: BigNumberish, _upperHint: string, _lowerHint: string, _overrides?: Overrides): Promise<void>;
    repayZusdFromDLLR(_dllrAmount: BigNumberish, _upperHint: string, _lowerHint: string, _permitParams: {
        deadline: BigNumberish;
        v: BigNumberish;
        r: BytesLike;
        s: BytesLike;
    }, _overrides?: Overrides): Promise<void>;
    setAddresses(_feeDistributorAddress: string, _liquityBaseParamsAddress: string, _troveManagerAddress: string, _activePoolAddress: string, _defaultPoolAddress: string, _stabilityPoolAddress: string, _gasPoolAddress: string, _collSurplusPoolAddress: string, _priceFeedAddress: string, _sortedTrovesAddress: string, _zusdTokenAddress: string, _zeroStakingAddress: string, _overrides?: Overrides): Promise<void>;
    setMassetManagerAddress(_massetManagerAddress: string, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
    withdrawColl(_collWithdrawal: BigNumberish, _upperHint: string, _lowerHint: string, _overrides?: Overrides): Promise<void>;
    withdrawZUSD(_maxFeePercentage: BigNumberish, _ZUSDAmount: BigNumberish, _upperHint: string, _lowerHint: string, _overrides?: Overrides): Promise<void>;
    withdrawZusdAndConvertToDLLR(_maxFeePercentage: BigNumberish, _ZUSDAmount: BigNumberish, _upperHint: string, _lowerHint: string, _overrides?: Overrides): Promise<BigNumber>;
}
export interface BorrowerOperations extends _TypedLiquityContract<BorrowerOperationsCalls, BorrowerOperationsTransactions> {
    readonly address: string;
    readonly filters: {
        ActivePoolAddressChanged(_activePoolAddress?: null): EventFilter;
        CollSurplusPoolAddressChanged(_collSurplusPoolAddress?: null): EventFilter;
        DefaultPoolAddressChanged(_defaultPoolAddress?: null): EventFilter;
        FeeDistributorAddressChanged(_feeDistributorAddress?: null): EventFilter;
        GasPoolAddressChanged(_gasPoolAddress?: null): EventFilter;
        MassetManagerAddressChanged(_massetManagerAddress?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        PriceFeedAddressChanged(_newPriceFeedAddress?: null): EventFilter;
        SortedTrovesAddressChanged(_sortedTrovesAddress?: null): EventFilter;
        StabilityPoolAddressChanged(_stabilityPoolAddress?: null): EventFilter;
        TroveCreated(_borrower?: string | null, arrayIndex?: null): EventFilter;
        TroveManagerAddressChanged(_newTroveManagerAddress?: null): EventFilter;
        TroveUpdated(_borrower?: string | null, _debt?: null, _coll?: null, stake?: null, operation?: null): EventFilter;
        ZEROStakingAddressChanged(_zeroStakingAddress?: null): EventFilter;
        ZUSDBorrowingFeePaid(_borrower?: string | null, _ZUSDFee?: null): EventFilter;
        ZUSDTokenAddressChanged(_zusdTokenAddress?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "ActivePoolAddressChanged"): _TypedLogDescription<{
        _activePoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "CollSurplusPoolAddressChanged"): _TypedLogDescription<{
        _collSurplusPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "DefaultPoolAddressChanged"): _TypedLogDescription<{
        _defaultPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "FeeDistributorAddressChanged"): _TypedLogDescription<{
        _feeDistributorAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "GasPoolAddressChanged"): _TypedLogDescription<{
        _gasPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "MassetManagerAddressChanged"): _TypedLogDescription<{
        _massetManagerAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "PriceFeedAddressChanged"): _TypedLogDescription<{
        _newPriceFeedAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "SortedTrovesAddressChanged"): _TypedLogDescription<{
        _sortedTrovesAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "StabilityPoolAddressChanged"): _TypedLogDescription<{
        _stabilityPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "TroveCreated"): _TypedLogDescription<{
        _borrower: string;
        arrayIndex: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TroveManagerAddressChanged"): _TypedLogDescription<{
        _newTroveManagerAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "TroveUpdated"): _TypedLogDescription<{
        _borrower: string;
        _debt: BigNumber;
        _coll: BigNumber;
        stake: BigNumber;
        operation: number;
    }>[];
    extractEvents(logs: Log[], name: "ZEROStakingAddressChanged"): _TypedLogDescription<{
        _zeroStakingAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "ZUSDBorrowingFeePaid"): _TypedLogDescription<{
        _borrower: string;
        _ZUSDFee: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "ZUSDTokenAddressChanged"): _TypedLogDescription<{
        _zusdTokenAddress: string;
    }>[];
}
interface CollSurplusPoolCalls {
    NAME(_overrides?: CallOverrides): Promise<string>;
    activePoolAddress(_overrides?: CallOverrides): Promise<string>;
    borrowerOperationsAddress(_overrides?: CallOverrides): Promise<string>;
    getCollateral(_account: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getETH(_overrides?: CallOverrides): Promise<BigNumber>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    troveManagerAddress(_overrides?: CallOverrides): Promise<string>;
}
interface CollSurplusPoolTransactions {
    accountSurplus(_account: string, _amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    claimColl(_account: string, _overrides?: Overrides): Promise<void>;
    setAddresses(_borrowerOperationsAddress: string, _troveManagerAddress: string, _activePoolAddress: string, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
}
export interface CollSurplusPool extends _TypedLiquityContract<CollSurplusPoolCalls, CollSurplusPoolTransactions> {
    readonly address: string;
    readonly filters: {
        ActivePoolAddressChanged(_newActivePoolAddress?: null): EventFilter;
        BorrowerOperationsAddressChanged(_newBorrowerOperationsAddress?: null): EventFilter;
        CollBalanceUpdated(_account?: string | null, _newBalance?: null): EventFilter;
        EtherSent(_to?: null, _amount?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        TroveManagerAddressChanged(_newTroveManagerAddress?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "ActivePoolAddressChanged"): _TypedLogDescription<{
        _newActivePoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "BorrowerOperationsAddressChanged"): _TypedLogDescription<{
        _newBorrowerOperationsAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "CollBalanceUpdated"): _TypedLogDescription<{
        _account: string;
        _newBalance: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "EtherSent"): _TypedLogDescription<{
        _to: string;
        _amount: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "TroveManagerAddressChanged"): _TypedLogDescription<{
        _newTroveManagerAddress: string;
    }>[];
}
interface CommunityIssuanceCalls {
    APR(_overrides?: CallOverrides): Promise<BigNumber>;
    DECIMAL_PRECISION(_overrides?: CallOverrides): Promise<BigNumber>;
    NAME(_overrides?: CallOverrides): Promise<string>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    lastIssuanceTime(_overrides?: CallOverrides): Promise<BigNumber>;
    priceFeed(_overrides?: CallOverrides): Promise<string>;
    rewardManager(_overrides?: CallOverrides): Promise<string>;
    sovToken(_overrides?: CallOverrides): Promise<string>;
    stabilityPoolAddress(_overrides?: CallOverrides): Promise<string>;
    totalSOVIssued(_overrides?: CallOverrides): Promise<BigNumber>;
    zusdToken(_overrides?: CallOverrides): Promise<string>;
}
interface CommunityIssuanceTransactions {
    initialize(_sovTokenAddress: string, _zusdTokenAddress: string, _stabilityPoolAddress: string, _priceFeed: string, _APR: BigNumberish, _overrides?: Overrides): Promise<void>;
    issueSOV(_totalZUSDDeposits: BigNumberish, _overrides?: Overrides): Promise<BigNumber>;
    sendSOV(_account: string, _SOVamount: BigNumberish, _overrides?: Overrides): Promise<void>;
    setAPR(_APR: BigNumberish, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
    setPriceFeed(_priceFeedAddress: string, _overrides?: Overrides): Promise<void>;
    setRewardManager(_rewardManagerAddress: string, _overrides?: Overrides): Promise<void>;
}
export interface CommunityIssuance extends _TypedLiquityContract<CommunityIssuanceCalls, CommunityIssuanceTransactions> {
    readonly address: string;
    readonly filters: {
        APRSet(_APR?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        PriceFeedAddressSet(_priceFeed?: null): EventFilter;
        RewardManagerAddressSet(_rewardManagerAddress?: null): EventFilter;
        SOVTokenAddressSet(_sovTokenAddress?: null): EventFilter;
        StabilityPoolAddressSet(_stabilityPoolAddress?: null): EventFilter;
        TotalSOVIssuedUpdated(_latestSOVIssued?: null): EventFilter;
        ZUSDTokenAddressSet(_zusdTokenAddress?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "APRSet"): _TypedLogDescription<{
        _APR: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "PriceFeedAddressSet"): _TypedLogDescription<{
        _priceFeed: string;
    }>[];
    extractEvents(logs: Log[], name: "RewardManagerAddressSet"): _TypedLogDescription<{
        _rewardManagerAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "SOVTokenAddressSet"): _TypedLogDescription<{
        _sovTokenAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "StabilityPoolAddressSet"): _TypedLogDescription<{
        _stabilityPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "TotalSOVIssuedUpdated"): _TypedLogDescription<{
        _latestSOVIssued: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "ZUSDTokenAddressSet"): _TypedLogDescription<{
        _zusdTokenAddress: string;
    }>[];
}
interface DefaultPoolCalls {
    NAME(_overrides?: CallOverrides): Promise<string>;
    activePoolAddress(_overrides?: CallOverrides): Promise<string>;
    getETH(_overrides?: CallOverrides): Promise<BigNumber>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    getZUSDDebt(_overrides?: CallOverrides): Promise<BigNumber>;
    troveManagerAddress(_overrides?: CallOverrides): Promise<string>;
}
interface DefaultPoolTransactions {
    decreaseZUSDDebt(_amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    increaseZUSDDebt(_amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    sendETHToActivePool(_amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    setAddresses(_troveManagerAddress: string, _activePoolAddress: string, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
}
export interface DefaultPool extends _TypedLiquityContract<DefaultPoolCalls, DefaultPoolTransactions> {
    readonly address: string;
    readonly filters: {
        ActivePoolAddressChanged(_newActivePoolAddress?: null): EventFilter;
        DefaultPoolAddressChanged(_newDefaultPoolAddress?: null): EventFilter;
        DefaultPoolETHBalanceUpdated(_ETH?: null): EventFilter;
        DefaultPoolZUSDDebtUpdated(_ZUSDDebt?: null): EventFilter;
        ETHBalanceUpdated(_newBalance?: null): EventFilter;
        EtherSent(_to?: null, _amount?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        StabilityPoolAddressChanged(_newStabilityPoolAddress?: null): EventFilter;
        TroveManagerAddressChanged(_newTroveManagerAddress?: null): EventFilter;
        ZUSDBalanceUpdated(_newBalance?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "ActivePoolAddressChanged"): _TypedLogDescription<{
        _newActivePoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "DefaultPoolAddressChanged"): _TypedLogDescription<{
        _newDefaultPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "DefaultPoolETHBalanceUpdated"): _TypedLogDescription<{
        _ETH: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "DefaultPoolZUSDDebtUpdated"): _TypedLogDescription<{
        _ZUSDDebt: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "ETHBalanceUpdated"): _TypedLogDescription<{
        _newBalance: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "EtherSent"): _TypedLogDescription<{
        _to: string;
        _amount: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "StabilityPoolAddressChanged"): _TypedLogDescription<{
        _newStabilityPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "TroveManagerAddressChanged"): _TypedLogDescription<{
        _newTroveManagerAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "ZUSDBalanceUpdated"): _TypedLogDescription<{
        _newBalance: BigNumber;
    }>[];
}
interface GasPoolCalls {
}
interface GasPoolTransactions {
}
export interface GasPool extends _TypedLiquityContract<GasPoolCalls, GasPoolTransactions> {
    readonly address: string;
    readonly filters: {};
}
interface HintHelpersCalls {
    DECIMAL_PRECISION(_overrides?: CallOverrides): Promise<BigNumber>;
    MIN_NET_DEBT(_overrides?: CallOverrides): Promise<BigNumber>;
    NAME(_overrides?: CallOverrides): Promise<string>;
    ZUSD_GAS_COMPENSATION(_overrides?: CallOverrides): Promise<BigNumber>;
    _100pct(_overrides?: CallOverrides): Promise<BigNumber>;
    activePool(_overrides?: CallOverrides): Promise<string>;
    computeCR(_coll: BigNumberish, _debt: BigNumberish, _price: BigNumberish, _overrides?: CallOverrides): Promise<BigNumber>;
    computeNominalCR(_coll: BigNumberish, _debt: BigNumberish, _overrides?: CallOverrides): Promise<BigNumber>;
    defaultPool(_overrides?: CallOverrides): Promise<string>;
    getApproxHint(_CR: BigNumberish, _numTrials: BigNumberish, _inputRandomSeed: BigNumberish, _overrides?: CallOverrides): Promise<{
        hintAddress: string;
        diff: BigNumber;
        latestRandomSeed: BigNumber;
    }>;
    getEntireSystemColl(_overrides?: CallOverrides): Promise<BigNumber>;
    getEntireSystemDebt(_overrides?: CallOverrides): Promise<BigNumber>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    getRedemptionHints(_ZUSDamount: BigNumberish, _price: BigNumberish, _maxIterations: BigNumberish, _overrides?: CallOverrides): Promise<{
        firstRedemptionHint: string;
        partialRedemptionHintNICR: BigNumber;
        truncatedZUSDamount: BigNumber;
    }>;
    liquityBaseParams(_overrides?: CallOverrides): Promise<string>;
    priceFeed(_overrides?: CallOverrides): Promise<string>;
    sortedTroves(_overrides?: CallOverrides): Promise<string>;
    troveManager(_overrides?: CallOverrides): Promise<string>;
}
interface HintHelpersTransactions {
    setAddresses(_liquityBaseParamsAddress: string, _sortedTrovesAddress: string, _troveManagerAddress: string, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
}
export interface HintHelpers extends _TypedLiquityContract<HintHelpersCalls, HintHelpersTransactions> {
    readonly address: string;
    readonly filters: {
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        SortedTrovesAddressChanged(_sortedTrovesAddress?: null): EventFilter;
        TroveManagerAddressChanged(_troveManagerAddress?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "SortedTrovesAddressChanged"): _TypedLogDescription<{
        _sortedTrovesAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "TroveManagerAddressChanged"): _TypedLogDescription<{
        _troveManagerAddress: string;
    }>[];
}
interface IERC20Calls {
    allowance(owner: string, spender: string, _overrides?: CallOverrides): Promise<BigNumber>;
    balanceOf(account: string, _overrides?: CallOverrides): Promise<BigNumber>;
    decimals(_overrides?: CallOverrides): Promise<number>;
    name(_overrides?: CallOverrides): Promise<string>;
    symbol(_overrides?: CallOverrides): Promise<string>;
    totalSupply(_overrides?: CallOverrides): Promise<BigNumber>;
}
interface IERC20Transactions {
    approve(spender: string, amount: BigNumberish, _overrides?: Overrides): Promise<boolean>;
    decreaseAllowance(spender: string, subtractedValue: BigNumberish, _overrides?: Overrides): Promise<boolean>;
    increaseAllowance(spender: string, addedValue: BigNumberish, _overrides?: Overrides): Promise<boolean>;
    transfer(recipient: string, amount: BigNumberish, _overrides?: Overrides): Promise<boolean>;
    transferFrom(sender: string, recipient: string, amount: BigNumberish, _overrides?: Overrides): Promise<boolean>;
}
export interface IERC20 extends _TypedLiquityContract<IERC20Calls, IERC20Transactions> {
    readonly address: string;
    readonly filters: {
        Approval(owner?: string | null, spender?: string | null, value?: null): EventFilter;
        Transfer(from?: string | null, to?: string | null, value?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "Approval"): _TypedLogDescription<{
        owner: string;
        spender: string;
        value: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "Transfer"): _TypedLogDescription<{
        from: string;
        to: string;
        value: BigNumber;
    }>[];
}
interface ZUSDTokenCalls {
    allowance(owner: string, spender: string, _overrides?: CallOverrides): Promise<BigNumber>;
    balanceOf(account: string, _overrides?: CallOverrides): Promise<BigNumber>;
    decimals(_overrides?: CallOverrides): Promise<number>;
    domainSeparator(_overrides?: CallOverrides): Promise<string>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    name(_overrides?: CallOverrides): Promise<string>;
    nonces(owner: string, _overrides?: CallOverrides): Promise<BigNumber>;
    permitTypeHash(_overrides?: CallOverrides): Promise<string>;
    symbol(_overrides?: CallOverrides): Promise<string>;
    totalSupply(_overrides?: CallOverrides): Promise<BigNumber>;
    version(_overrides?: CallOverrides): Promise<string>;
}
interface ZUSDTokenTransactions {
    approve(spender: string, amount: BigNumberish, _overrides?: Overrides): Promise<boolean>;
    burn(_account: string, _amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    decreaseAllowance(spender: string, subtractedValue: BigNumberish, _overrides?: Overrides): Promise<boolean>;
    increaseAllowance(spender: string, addedValue: BigNumberish, _overrides?: Overrides): Promise<boolean>;
    initialize(_troveManagerAddress: string, _stabilityPoolAddress: string, _borrowerOperationsAddress: string, _overrides?: Overrides): Promise<void>;
    mint(_account: string, _amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    permit(owner: string, spender: string, amount: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, _overrides?: Overrides): Promise<void>;
    returnFromPool(_poolAddress: string, _receiver: string, _amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    sendToPool(_sender: string, _poolAddress: string, _amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
    transfer(recipient: string, amount: BigNumberish, _overrides?: Overrides): Promise<boolean>;
    transferFrom(sender: string, recipient: string, amount: BigNumberish, _overrides?: Overrides): Promise<boolean>;
}
export interface ZUSDToken extends _TypedLiquityContract<ZUSDTokenCalls, ZUSDTokenTransactions> {
    readonly address: string;
    readonly filters: {
        Approval(owner?: string | null, spender?: string | null, value?: null): EventFilter;
        BorrowerOperationsAddressChanged(_newBorrowerOperationsAddress?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        StabilityPoolAddressChanged(_newStabilityPoolAddress?: null): EventFilter;
        Transfer(from?: string | null, to?: string | null, value?: null): EventFilter;
        TroveManagerAddressChanged(_troveManagerAddress?: null): EventFilter;
        ZUSDTokenBalanceUpdated(_user?: null, _amount?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "Approval"): _TypedLogDescription<{
        owner: string;
        spender: string;
        value: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "BorrowerOperationsAddressChanged"): _TypedLogDescription<{
        _newBorrowerOperationsAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "StabilityPoolAddressChanged"): _TypedLogDescription<{
        _newStabilityPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "Transfer"): _TypedLogDescription<{
        from: string;
        to: string;
        value: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TroveManagerAddressChanged"): _TypedLogDescription<{
        _troveManagerAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "ZUSDTokenBalanceUpdated"): _TypedLogDescription<{
        _user: string;
        _amount: BigNumber;
    }>[];
}
interface ZEROStakingCalls {
    DECIMAL_PRECISION(_overrides?: CallOverrides): Promise<BigNumber>;
    F_ETH(_overrides?: CallOverrides): Promise<BigNumber>;
    F_ZUSD(_overrides?: CallOverrides): Promise<BigNumber>;
    NAME(_overrides?: CallOverrides): Promise<string>;
    activePoolAddress(_overrides?: CallOverrides): Promise<string>;
    feeDistributorAddress(_overrides?: CallOverrides): Promise<string>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    getPendingETHGain(_user: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getPendingZUSDGain(_user: string, _overrides?: CallOverrides): Promise<BigNumber>;
    snapshots(arg0: string, _overrides?: CallOverrides): Promise<{
        F_ETH_Snapshot: BigNumber;
        F_ZUSD_Snapshot: BigNumber;
    }>;
    stakes(arg0: string, _overrides?: CallOverrides): Promise<BigNumber>;
    totalZEROStaked(_overrides?: CallOverrides): Promise<BigNumber>;
    zeroToken(_overrides?: CallOverrides): Promise<string>;
    zusdToken(_overrides?: CallOverrides): Promise<string>;
}
interface ZEROStakingTransactions {
    increaseF_ETH(_ETHFee: BigNumberish, _overrides?: Overrides): Promise<void>;
    increaseF_ZUSD(_ZUSDFee: BigNumberish, _overrides?: Overrides): Promise<void>;
    setAddresses(_zeroTokenAddress: string, _zusdTokenAddress: string, _feeDistributorAddress: string, _activePoolAddress: string, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
    stake(_ZEROamount: BigNumberish, _overrides?: Overrides): Promise<void>;
    unstake(_ZEROamount: BigNumberish, _overrides?: Overrides): Promise<void>;
}
export interface ZEROStaking extends _TypedLiquityContract<ZEROStakingCalls, ZEROStakingTransactions> {
    readonly address: string;
    readonly filters: {
        ActivePoolAddressSet(_activePoolAddress?: null): EventFilter;
        EtherSent(_account?: null, _amount?: null): EventFilter;
        F_ETHUpdated(_F_ETH?: null): EventFilter;
        F_ZUSDUpdated(_F_ZUSD?: null): EventFilter;
        FeeDistributorAddressAddressSet(_feeDistributorAddress?: null): EventFilter;
        FeeDistributorAddressSet(_feeDistributorAddress?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        StakeChanged(staker?: string | null, newStake?: null): EventFilter;
        StakerSnapshotsUpdated(_staker?: null, _F_ETH?: null, _F_ZUSD?: null): EventFilter;
        StakingGainsWithdrawn(staker?: string | null, ZUSDGain?: null, ETHGain?: null): EventFilter;
        TotalZEROStakedUpdated(_totalZEROStaked?: null): EventFilter;
        ZEROTokenAddressSet(_zeroTokenAddress?: null): EventFilter;
        ZUSDTokenAddressSet(_zusdTokenAddress?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "ActivePoolAddressSet"): _TypedLogDescription<{
        _activePoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "EtherSent"): _TypedLogDescription<{
        _account: string;
        _amount: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "F_ETHUpdated"): _TypedLogDescription<{
        _F_ETH: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "F_ZUSDUpdated"): _TypedLogDescription<{
        _F_ZUSD: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "FeeDistributorAddressAddressSet"): _TypedLogDescription<{
        _feeDistributorAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "FeeDistributorAddressSet"): _TypedLogDescription<{
        _feeDistributorAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "StakeChanged"): _TypedLogDescription<{
        staker: string;
        newStake: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "StakerSnapshotsUpdated"): _TypedLogDescription<{
        _staker: string;
        _F_ETH: BigNumber;
        _F_ZUSD: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "StakingGainsWithdrawn"): _TypedLogDescription<{
        staker: string;
        ZUSDGain: BigNumber;
        ETHGain: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TotalZEROStakedUpdated"): _TypedLogDescription<{
        _totalZEROStaked: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "ZEROTokenAddressSet"): _TypedLogDescription<{
        _zeroTokenAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "ZUSDTokenAddressSet"): _TypedLogDescription<{
        _zusdTokenAddress: string;
    }>[];
}
interface ZEROTokenCalls {
    ONE_YEAR_IN_SECONDS(_overrides?: CallOverrides): Promise<BigNumber>;
    allowance(owner: string, spender: string, _overrides?: CallOverrides): Promise<BigNumber>;
    balanceOf(account: string, _overrides?: CallOverrides): Promise<BigNumber>;
    decimals(_overrides?: CallOverrides): Promise<number>;
    domainSeparator(_overrides?: CallOverrides): Promise<string>;
    getDeploymentStartTime(_overrides?: CallOverrides): Promise<BigNumber>;
    marketMakerAddress(_overrides?: CallOverrides): Promise<string>;
    name(_overrides?: CallOverrides): Promise<string>;
    nonces(owner: string, _overrides?: CallOverrides): Promise<BigNumber>;
    permitTypeHash(_overrides?: CallOverrides): Promise<string>;
    presale(_overrides?: CallOverrides): Promise<string>;
    symbol(_overrides?: CallOverrides): Promise<string>;
    totalSupply(_overrides?: CallOverrides): Promise<BigNumber>;
    version(_overrides?: CallOverrides): Promise<string>;
    zeroStakingAddress(_overrides?: CallOverrides): Promise<string>;
}
interface ZEROTokenTransactions {
    approve(spender: string, amount: BigNumberish, _overrides?: Overrides): Promise<boolean>;
    burn(account: string, amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    decreaseAllowance(spender: string, subtractedValue: BigNumberish, _overrides?: Overrides): Promise<boolean>;
    increaseAllowance(spender: string, addedValue: BigNumberish, _overrides?: Overrides): Promise<boolean>;
    initialize(_zeroStakingAddress: string, _marketMakerAddress: string, _presaleAddress: string, _overrides?: Overrides): Promise<void>;
    mint(account: string, amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    permit(owner: string, spender: string, amount: BigNumberish, deadline: BigNumberish, v: BigNumberish, r: BytesLike, s: BytesLike, _overrides?: Overrides): Promise<void>;
    sendToZEROStaking(_sender: string, _amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    transfer(recipient: string, amount: BigNumberish, _overrides?: Overrides): Promise<boolean>;
    transferFrom(sender: string, recipient: string, amount: BigNumberish, _overrides?: Overrides): Promise<boolean>;
}
export interface ZEROToken extends _TypedLiquityContract<ZEROTokenCalls, ZEROTokenTransactions> {
    readonly address: string;
    readonly filters: {
        Approval(owner?: string | null, spender?: string | null, value?: null): EventFilter;
        Transfer(from?: string | null, to?: string | null, value?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "Approval"): _TypedLogDescription<{
        owner: string;
        spender: string;
        value: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "Transfer"): _TypedLogDescription<{
        from: string;
        to: string;
        value: BigNumber;
    }>[];
}
interface MultiTroveGetterCalls {
    getMultipleSortedTroves(_startIdx: BigNumberish, _count: BigNumberish, _overrides?: CallOverrides): Promise<{
        owner: string;
        debt: BigNumber;
        coll: BigNumber;
        stake: BigNumber;
        snapshotETH: BigNumber;
        snapshotZUSDDebt: BigNumber;
    }[]>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    sortedTroves(_overrides?: CallOverrides): Promise<string>;
    troveManager(_overrides?: CallOverrides): Promise<string>;
}
interface MultiTroveGetterTransactions {
    setAddresses(_troveManager: string, _sortedTroves: string, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
}
export interface MultiTroveGetter extends _TypedLiquityContract<MultiTroveGetterCalls, MultiTroveGetterTransactions> {
    readonly address: string;
    readonly filters: {
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
    };
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
}
interface PriceFeedCalls {
    NAME(_overrides?: CallOverrides): Promise<string>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    lastGoodPrice(_overrides?: CallOverrides): Promise<BigNumber>;
}
interface PriceFeedTransactions {
    fetchPrice(_overrides?: Overrides): Promise<BigNumber>;
    setAddress(_index: BigNumberish, _newPriceFeed: string, _overrides?: Overrides): Promise<BigNumber>;
    setAddresses(_mainPriceFeed: string, _backupPriceFeed: string, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
}
export interface PriceFeed extends _TypedLiquityContract<PriceFeedCalls, PriceFeedTransactions> {
    readonly address: string;
    readonly filters: {
        LastGoodPriceUpdated(_lastGoodPrice?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        PriceFeedBroken(index?: null, priceFeedAddress?: null): EventFilter;
        PriceFeedUpdated(index?: null, newPriceFeedAddress?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "LastGoodPriceUpdated"): _TypedLogDescription<{
        _lastGoodPrice: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "PriceFeedBroken"): _TypedLogDescription<{
        index: number;
        priceFeedAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "PriceFeedUpdated"): _TypedLogDescription<{
        index: number;
        newPriceFeedAddress: string;
    }>[];
}
interface PriceFeedTestnetCalls {
    getPrice(_overrides?: CallOverrides): Promise<BigNumber>;
}
interface PriceFeedTestnetTransactions {
    fetchPrice(_overrides?: Overrides): Promise<BigNumber>;
    setPrice(price: BigNumberish, _overrides?: Overrides): Promise<boolean>;
}
export interface PriceFeedTestnet extends _TypedLiquityContract<PriceFeedTestnetCalls, PriceFeedTestnetTransactions> {
    readonly address: string;
    readonly filters: {
        LastGoodPriceUpdated(_lastGoodPrice?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "LastGoodPriceUpdated"): _TypedLogDescription<{
        _lastGoodPrice: BigNumber;
    }>[];
}
interface SortedTrovesCalls {
    NAME(_overrides?: CallOverrides): Promise<string>;
    borrowerOperationsAddress(_overrides?: CallOverrides): Promise<string>;
    contains(_id: string, _overrides?: CallOverrides): Promise<boolean>;
    data(_overrides?: CallOverrides): Promise<{
        head: string;
        tail: string;
        maxSize: BigNumber;
        size: BigNumber;
    }>;
    findInsertPosition(_NICR: BigNumberish, _prevId: string, _nextId: string, _overrides?: CallOverrides): Promise<[string, string]>;
    getFirst(_overrides?: CallOverrides): Promise<string>;
    getLast(_overrides?: CallOverrides): Promise<string>;
    getMaxSize(_overrides?: CallOverrides): Promise<BigNumber>;
    getNext(_id: string, _overrides?: CallOverrides): Promise<string>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    getPrev(_id: string, _overrides?: CallOverrides): Promise<string>;
    getSize(_overrides?: CallOverrides): Promise<BigNumber>;
    isEmpty(_overrides?: CallOverrides): Promise<boolean>;
    isFull(_overrides?: CallOverrides): Promise<boolean>;
    troveManager(_overrides?: CallOverrides): Promise<string>;
    validInsertPosition(_NICR: BigNumberish, _prevId: string, _nextId: string, _overrides?: CallOverrides): Promise<boolean>;
}
interface SortedTrovesTransactions {
    insert(_id: string, _NICR: BigNumberish, _prevId: string, _nextId: string, _overrides?: Overrides): Promise<void>;
    reInsert(_id: string, _newNICR: BigNumberish, _prevId: string, _nextId: string, _overrides?: Overrides): Promise<void>;
    remove(_id: string, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
    setParams(_size: BigNumberish, _troveManagerAddress: string, _borrowerOperationsAddress: string, _overrides?: Overrides): Promise<void>;
}
export interface SortedTroves extends _TypedLiquityContract<SortedTrovesCalls, SortedTrovesTransactions> {
    readonly address: string;
    readonly filters: {
        BorrowerOperationsAddressChanged(_borrowerOperationsAddress?: null): EventFilter;
        NodeAdded(_id?: null, _NICR?: null): EventFilter;
        NodeRemoved(_id?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        SortedTrovesAddressChanged(_sortedDoublyLLAddress?: null): EventFilter;
        TroveManagerAddressChanged(_troveManagerAddress?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "BorrowerOperationsAddressChanged"): _TypedLogDescription<{
        _borrowerOperationsAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "NodeAdded"): _TypedLogDescription<{
        _id: string;
        _NICR: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "NodeRemoved"): _TypedLogDescription<{
        _id: string;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "SortedTrovesAddressChanged"): _TypedLogDescription<{
        _sortedDoublyLLAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "TroveManagerAddressChanged"): _TypedLogDescription<{
        _troveManagerAddress: string;
    }>[];
}
interface StabilityPoolCalls {
    DECIMAL_PRECISION(_overrides?: CallOverrides): Promise<BigNumber>;
    MIN_NET_DEBT(_overrides?: CallOverrides): Promise<BigNumber>;
    NAME(_overrides?: CallOverrides): Promise<string>;
    P(_overrides?: CallOverrides): Promise<BigNumber>;
    SCALE_FACTOR(_overrides?: CallOverrides): Promise<BigNumber>;
    ZUSD_GAS_COMPENSATION(_overrides?: CallOverrides): Promise<BigNumber>;
    _100pct(_overrides?: CallOverrides): Promise<BigNumber>;
    activePool(_overrides?: CallOverrides): Promise<string>;
    borrowerOperations(_overrides?: CallOverrides): Promise<string>;
    communityIssuance(_overrides?: CallOverrides): Promise<string>;
    currentEpoch(_overrides?: CallOverrides): Promise<BigNumber>;
    currentScale(_overrides?: CallOverrides): Promise<BigNumber>;
    defaultPool(_overrides?: CallOverrides): Promise<string>;
    depositSnapshots(arg0: string, _overrides?: CallOverrides): Promise<{
        S: BigNumber;
        P: BigNumber;
        G: BigNumber;
        scale: BigNumber;
        epoch: BigNumber;
    }>;
    deposits(arg0: string, _overrides?: CallOverrides): Promise<{
        initialValue: BigNumber;
        frontEndTag: string;
    }>;
    epochToScaleToG(arg0: BigNumberish, arg1: BigNumberish, _overrides?: CallOverrides): Promise<BigNumber>;
    epochToScaleToSum(arg0: BigNumberish, arg1: BigNumberish, _overrides?: CallOverrides): Promise<BigNumber>;
    frontEndSnapshots(arg0: string, _overrides?: CallOverrides): Promise<{
        S: BigNumber;
        P: BigNumber;
        G: BigNumber;
        scale: BigNumber;
        epoch: BigNumber;
    }>;
    frontEndStakes(arg0: string, _overrides?: CallOverrides): Promise<BigNumber>;
    frontEnds(arg0: string, _overrides?: CallOverrides): Promise<{
        kickbackRate: BigNumber;
        registered: boolean;
    }>;
    getCompoundedFrontEndStake(_frontEnd: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getCompoundedZUSDDeposit(_depositor: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getDepositorETHGain(_depositor: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getDepositorSOVGain(_depositor: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getETH(_overrides?: CallOverrides): Promise<BigNumber>;
    getEntireSystemColl(_overrides?: CallOverrides): Promise<BigNumber>;
    getEntireSystemDebt(_overrides?: CallOverrides): Promise<BigNumber>;
    getFrontEndSOVGain(_frontEnd: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    getTotalZUSDDeposits(_overrides?: CallOverrides): Promise<BigNumber>;
    lastETHError_Offset(_overrides?: CallOverrides): Promise<BigNumber>;
    lastSOVError(_overrides?: CallOverrides): Promise<BigNumber>;
    lastZUSDLossError_Offset(_overrides?: CallOverrides): Promise<BigNumber>;
    liquityBaseParams(_overrides?: CallOverrides): Promise<string>;
    priceFeed(_overrides?: CallOverrides): Promise<string>;
    sortedTroves(_overrides?: CallOverrides): Promise<string>;
    troveManager(_overrides?: CallOverrides): Promise<string>;
    zusdToken(_overrides?: CallOverrides): Promise<string>;
}
interface StabilityPoolTransactions {
    offset(_debtToOffset: BigNumberish, _collToAdd: BigNumberish, _overrides?: Overrides): Promise<void>;
    provideToSP(_amount: BigNumberish, _frontEndTag: string, _overrides?: Overrides): Promise<void>;
    provideToSpFromDLLR(_dllrAmount: BigNumberish, _permitParams: {
        deadline: BigNumberish;
        v: BigNumberish;
        r: BytesLike;
        s: BytesLike;
    }, _overrides?: Overrides): Promise<void>;
    registerFrontEnd(_kickbackRate: BigNumberish, _overrides?: Overrides): Promise<void>;
    setAddresses(_liquityBaseParamsAddress: string, _borrowerOperationsAddress: string, _troveManagerAddress: string, _activePoolAddress: string, _zusdTokenAddress: string, _sortedTrovesAddress: string, _priceFeedAddress: string, _communityIssuanceAddress: string, _overrides?: Overrides): Promise<void>;
    setCommunityIssuanceAddress(_communityIssuanceAddress: string, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
    withdrawETHGainToTrove(_upperHint: string, _lowerHint: string, _overrides?: Overrides): Promise<void>;
    withdrawFromSP(_amount: BigNumberish, _overrides?: Overrides): Promise<void>;
    withdrawFromSpAndConvertToDLLR(_zusdAmountRequested: BigNumberish, _overrides?: Overrides): Promise<void>;
}
export interface StabilityPool extends _TypedLiquityContract<StabilityPoolCalls, StabilityPoolTransactions> {
    readonly address: string;
    readonly filters: {
        ActivePoolAddressChanged(_newActivePoolAddress?: null): EventFilter;
        BorrowerOperationsAddressChanged(_newBorrowerOperationsAddress?: null): EventFilter;
        CommunityIssuanceAddressChanged(_newCommunityIssuanceAddress?: null): EventFilter;
        DefaultPoolAddressChanged(_newDefaultPoolAddress?: null): EventFilter;
        DepositSnapshotUpdated(_depositor?: string | null, _P?: null, _S?: null, _G?: null): EventFilter;
        ETHGainWithdrawn(_depositor?: string | null, _ETH?: null, _ZUSDLoss?: null): EventFilter;
        EpochUpdated(_currentEpoch?: null): EventFilter;
        EtherSent(_to?: null, _amount?: null): EventFilter;
        FrontEndRegistered(_frontEnd?: string | null, _kickbackRate?: null): EventFilter;
        FrontEndSnapshotUpdated(_frontEnd?: string | null, _P?: null, _G?: null): EventFilter;
        FrontEndStakeChanged(_frontEnd?: string | null, _newFrontEndStake?: null, _depositor?: null): EventFilter;
        FrontEndTagSet(_depositor?: string | null, _frontEnd?: string | null): EventFilter;
        G_Updated(_G?: null, _epoch?: null, _scale?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        P_Updated(_P?: null): EventFilter;
        PriceFeedAddressChanged(_newPriceFeedAddress?: null): EventFilter;
        SOVPaidToDepositor(_depositor?: string | null, _SOV?: null): EventFilter;
        SOVPaidToFrontEnd(_frontEnd?: string | null, _SOV?: null): EventFilter;
        S_Updated(_S?: null, _epoch?: null, _scale?: null): EventFilter;
        ScaleUpdated(_currentScale?: null): EventFilter;
        SortedTrovesAddressChanged(_newSortedTrovesAddress?: null): EventFilter;
        StabilityPoolETHBalanceUpdated(_newBalance?: null): EventFilter;
        StabilityPoolZUSDBalanceUpdated(_newBalance?: null): EventFilter;
        TroveManagerAddressChanged(_newTroveManagerAddress?: null): EventFilter;
        UserDepositChanged(_depositor?: string | null, _newDeposit?: null): EventFilter;
        WithdrawFromSpAndConvertToDLLR(_depositor?: null, _zusdAmountRequested?: null, _dllrAmountReceived?: null): EventFilter;
        ZUSDTokenAddressChanged(_newZUSDTokenAddress?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "ActivePoolAddressChanged"): _TypedLogDescription<{
        _newActivePoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "BorrowerOperationsAddressChanged"): _TypedLogDescription<{
        _newBorrowerOperationsAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "CommunityIssuanceAddressChanged"): _TypedLogDescription<{
        _newCommunityIssuanceAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "DefaultPoolAddressChanged"): _TypedLogDescription<{
        _newDefaultPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "DepositSnapshotUpdated"): _TypedLogDescription<{
        _depositor: string;
        _P: BigNumber;
        _S: BigNumber;
        _G: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "ETHGainWithdrawn"): _TypedLogDescription<{
        _depositor: string;
        _ETH: BigNumber;
        _ZUSDLoss: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "EpochUpdated"): _TypedLogDescription<{
        _currentEpoch: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "EtherSent"): _TypedLogDescription<{
        _to: string;
        _amount: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "FrontEndRegistered"): _TypedLogDescription<{
        _frontEnd: string;
        _kickbackRate: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "FrontEndSnapshotUpdated"): _TypedLogDescription<{
        _frontEnd: string;
        _P: BigNumber;
        _G: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "FrontEndStakeChanged"): _TypedLogDescription<{
        _frontEnd: string;
        _newFrontEndStake: BigNumber;
        _depositor: string;
    }>[];
    extractEvents(logs: Log[], name: "FrontEndTagSet"): _TypedLogDescription<{
        _depositor: string;
        _frontEnd: string;
    }>[];
    extractEvents(logs: Log[], name: "G_Updated"): _TypedLogDescription<{
        _G: BigNumber;
        _epoch: BigNumber;
        _scale: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "P_Updated"): _TypedLogDescription<{
        _P: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "PriceFeedAddressChanged"): _TypedLogDescription<{
        _newPriceFeedAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "SOVPaidToDepositor"): _TypedLogDescription<{
        _depositor: string;
        _SOV: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "SOVPaidToFrontEnd"): _TypedLogDescription<{
        _frontEnd: string;
        _SOV: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "S_Updated"): _TypedLogDescription<{
        _S: BigNumber;
        _epoch: BigNumber;
        _scale: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "ScaleUpdated"): _TypedLogDescription<{
        _currentScale: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "SortedTrovesAddressChanged"): _TypedLogDescription<{
        _newSortedTrovesAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "StabilityPoolETHBalanceUpdated"): _TypedLogDescription<{
        _newBalance: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "StabilityPoolZUSDBalanceUpdated"): _TypedLogDescription<{
        _newBalance: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TroveManagerAddressChanged"): _TypedLogDescription<{
        _newTroveManagerAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "UserDepositChanged"): _TypedLogDescription<{
        _depositor: string;
        _newDeposit: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "WithdrawFromSpAndConvertToDLLR"): _TypedLogDescription<{
        _depositor: string;
        _zusdAmountRequested: BigNumber;
        _dllrAmountReceived: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "ZUSDTokenAddressChanged"): _TypedLogDescription<{
        _newZUSDTokenAddress: string;
    }>[];
}
interface TroveManagerCalls {
    BETA(_overrides?: CallOverrides): Promise<BigNumber>;
    BOOTSTRAP_PERIOD(_overrides?: CallOverrides): Promise<BigNumber>;
    CCR(_overrides?: CallOverrides): Promise<BigNumber>;
    DECIMAL_PRECISION(_overrides?: CallOverrides): Promise<BigNumber>;
    L_ETH(_overrides?: CallOverrides): Promise<BigNumber>;
    L_ZUSDDebt(_overrides?: CallOverrides): Promise<BigNumber>;
    MCR(_overrides?: CallOverrides): Promise<BigNumber>;
    MINUTE_DECAY_FACTOR(_overrides?: CallOverrides): Promise<BigNumber>;
    MIN_NET_DEBT(_overrides?: CallOverrides): Promise<BigNumber>;
    NAME(_overrides?: CallOverrides): Promise<string>;
    SECONDS_IN_ONE_MINUTE(_overrides?: CallOverrides): Promise<BigNumber>;
    TroveOwners(arg0: BigNumberish, _overrides?: CallOverrides): Promise<string>;
    Troves(arg0: string, _overrides?: CallOverrides): Promise<{
        debt: BigNumber;
        coll: BigNumber;
        stake: BigNumber;
        status: number;
        arrayIndex: BigNumber;
    }>;
    ZUSD_GAS_COMPENSATION(_overrides?: CallOverrides): Promise<BigNumber>;
    _100pct(_overrides?: CallOverrides): Promise<BigNumber>;
    _getCurrentICR(_borrower: string, _price: BigNumberish, _overrides?: CallOverrides): Promise<BigNumber>;
    _getPendingETHReward(_borrower: string, _overrides?: CallOverrides): Promise<BigNumber>;
    _getPendingZUSDDebtReward(_borrower: string, _overrides?: CallOverrides): Promise<BigNumber>;
    _getRedemptionRate(_overrides?: CallOverrides): Promise<BigNumber>;
    _hasPendingRewards(_borrower: string, _overrides?: CallOverrides): Promise<boolean>;
    _stabilityPool(_overrides?: CallOverrides): Promise<string>;
    _zeroStaking(_overrides?: CallOverrides): Promise<string>;
    _zeroToken(_overrides?: CallOverrides): Promise<string>;
    _zusdToken(_overrides?: CallOverrides): Promise<string>;
    activePool(_overrides?: CallOverrides): Promise<string>;
    baseRate(_overrides?: CallOverrides): Promise<BigNumber>;
    borrowerOperationsAddress(_overrides?: CallOverrides): Promise<string>;
    checkRecoveryMode(_price: BigNumberish, _overrides?: CallOverrides): Promise<boolean>;
    defaultPool(_overrides?: CallOverrides): Promise<string>;
    feeDistributor(_overrides?: CallOverrides): Promise<string>;
    getBorrowingFee(_ZUSDDebt: BigNumberish, _overrides?: CallOverrides): Promise<BigNumber>;
    getBorrowingFeeWithDecay(_ZUSDDebt: BigNumberish, _overrides?: CallOverrides): Promise<BigNumber>;
    getBorrowingRate(_overrides?: CallOverrides): Promise<BigNumber>;
    getBorrowingRateWithDecay(_overrides?: CallOverrides): Promise<BigNumber>;
    getCurrentICR(_borrower: string, _price: BigNumberish, _overrides?: CallOverrides): Promise<BigNumber>;
    getEntireDebtAndColl(_borrower: string, _overrides?: CallOverrides): Promise<{
        debt: BigNumber;
        coll: BigNumber;
        pendingZUSDDebtReward: BigNumber;
        pendingETHReward: BigNumber;
    }>;
    getEntireSystemColl(_overrides?: CallOverrides): Promise<BigNumber>;
    getEntireSystemDebt(_overrides?: CallOverrides): Promise<BigNumber>;
    getNominalICR(_borrower: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    getPendingETHReward(_borrower: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getPendingZUSDDebtReward(_borrower: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getRedemptionFeeWithDecay(_ETHDrawn: BigNumberish, _overrides?: CallOverrides): Promise<BigNumber>;
    getRedemptionRate(_overrides?: CallOverrides): Promise<BigNumber>;
    getRedemptionRateWithDecay(_overrides?: CallOverrides): Promise<BigNumber>;
    getTCR(_price: BigNumberish, _overrides?: CallOverrides): Promise<BigNumber>;
    getTroveColl(_borrower: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getTroveDebt(_borrower: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getTroveFromTroveOwnersArray(_index: BigNumberish, _overrides?: CallOverrides): Promise<string>;
    getTroveOwnersCount(_overrides?: CallOverrides): Promise<BigNumber>;
    getTroveStake(_borrower: string, _overrides?: CallOverrides): Promise<BigNumber>;
    getTroveStatus(_borrower: string, _overrides?: CallOverrides): Promise<BigNumber>;
    hasPendingRewards(_borrower: string, _overrides?: CallOverrides): Promise<boolean>;
    lastETHError_Redistribution(_overrides?: CallOverrides): Promise<BigNumber>;
    lastFeeOperationTime(_overrides?: CallOverrides): Promise<BigNumber>;
    lastZUSDDebtError_Redistribution(_overrides?: CallOverrides): Promise<BigNumber>;
    liquityBaseParams(_overrides?: CallOverrides): Promise<string>;
    priceFeed(_overrides?: CallOverrides): Promise<string>;
    rewardSnapshots(arg0: string, _overrides?: CallOverrides): Promise<{
        ETH: BigNumber;
        ZUSDDebt: BigNumber;
    }>;
    sortedTroves(_overrides?: CallOverrides): Promise<string>;
    totalCollateralSnapshot(_overrides?: CallOverrides): Promise<BigNumber>;
    totalStakes(_overrides?: CallOverrides): Promise<BigNumber>;
    totalStakesSnapshot(_overrides?: CallOverrides): Promise<BigNumber>;
    troveManagerRedeemOps(_overrides?: CallOverrides): Promise<string>;
}
interface TroveManagerTransactions {
    addTroveOwnerToArray(_borrower: string, _overrides?: Overrides): Promise<BigNumber>;
    applyPendingRewards(_borrower: string, _overrides?: Overrides): Promise<void>;
    batchLiquidateTroves(_troveArray: string[], _overrides?: Overrides): Promise<void>;
    closeTrove(_borrower: string, _overrides?: Overrides): Promise<void>;
    decayBaseRateFromBorrowing(_overrides?: Overrides): Promise<void>;
    decreaseTroveColl(_borrower: string, _collDecrease: BigNumberish, _overrides?: Overrides): Promise<BigNumber>;
    decreaseTroveDebt(_borrower: string, _debtDecrease: BigNumberish, _overrides?: Overrides): Promise<BigNumber>;
    increaseTroveColl(_borrower: string, _collIncrease: BigNumberish, _overrides?: Overrides): Promise<BigNumber>;
    increaseTroveDebt(_borrower: string, _debtIncrease: BigNumberish, _overrides?: Overrides): Promise<BigNumber>;
    liquidate(_borrower: string, _overrides?: Overrides): Promise<void>;
    liquidateTroves(_n: BigNumberish, _overrides?: Overrides): Promise<void>;
    redeemCollateral(_ZUSDamount: BigNumberish, _firstRedemptionHint: string, _upperPartialRedemptionHint: string, _lowerPartialRedemptionHint: string, _partialRedemptionHintNICR: BigNumberish, _maxIterations: BigNumberish, _maxFeePercentage: BigNumberish, _overrides?: Overrides): Promise<void>;
    redeemCollateralViaDLLR(_dllrAmount: BigNumberish, _firstRedemptionHint: string, _upperPartialRedemptionHint: string, _lowerPartialRedemptionHint: string, _partialRedemptionHintNICR: BigNumberish, _maxIterations: BigNumberish, _maxFeePercentage: BigNumberish, _permitParams: {
        deadline: BigNumberish;
        v: BigNumberish;
        r: BytesLike;
        s: BytesLike;
    }, _overrides?: Overrides): Promise<void>;
    removeStake(_borrower: string, _overrides?: Overrides): Promise<void>;
    setAddresses(_troveManagerInitAddressesParams: {
        _feeDistributorAddress: string;
        _troveManagerRedeemOps: string;
        _liquityBaseParamsAddress: string;
        _borrowerOperationsAddress: string;
        _activePoolAddress: string;
        _defaultPoolAddress: string;
        _stabilityPoolAddress: string;
        _gasPoolAddress: string;
        _collSurplusPoolAddress: string;
        _priceFeedAddress: string;
        _zusdTokenAddress: string;
        _sortedTrovesAddress: string;
        _zeroTokenAddress: string;
        _zeroStakingAddress: string;
    }, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
    setTroveManagerRedeemOps(_troveManagerRedeemOps: string, _overrides?: Overrides): Promise<void>;
    setTroveStatus(_borrower: string, _num: BigNumberish, _overrides?: Overrides): Promise<void>;
    updateStakeAndTotalStakes(_borrower: string, _overrides?: Overrides): Promise<BigNumber>;
    updateTroveRewardSnapshots(_borrower: string, _overrides?: Overrides): Promise<void>;
}
export interface TroveManager extends _TypedLiquityContract<TroveManagerCalls, TroveManagerTransactions> {
    readonly address: string;
    readonly filters: {
        ActivePoolAddressChanged(_activePoolAddress?: null): EventFilter;
        BaseRateUpdated(_baseRate?: null): EventFilter;
        BorrowerOperationsAddressChanged(_newBorrowerOperationsAddress?: null): EventFilter;
        CollSurplusPoolAddressChanged(_collSurplusPoolAddress?: null): EventFilter;
        DefaultPoolAddressChanged(_defaultPoolAddress?: null): EventFilter;
        FeeDistributorAddressChanged(_feeDistributorAddress?: null): EventFilter;
        GasPoolAddressChanged(_gasPoolAddress?: null): EventFilter;
        LTermsUpdated(_L_ETH?: null, _L_ZUSDDebt?: null): EventFilter;
        LastFeeOpTimeUpdated(_lastFeeOpTime?: null): EventFilter;
        Liquidation(_liquidatedDebt?: null, _liquidatedColl?: null, _collGasCompensation?: null, _ZUSDGasCompensation?: null): EventFilter;
        LiquityBaseParamsAddressChanges(_borrowerOperationsAddress?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        PriceFeedAddressChanged(_newPriceFeedAddress?: null): EventFilter;
        Redemption(_attemptedZUSDAmount?: null, _actualZUSDAmount?: null, _ETHSent?: null, _ETHFee?: null): EventFilter;
        SortedTrovesAddressChanged(_sortedTrovesAddress?: null): EventFilter;
        StabilityPoolAddressChanged(_stabilityPoolAddress?: null): EventFilter;
        SystemSnapshotsUpdated(_totalStakesSnapshot?: null, _totalCollateralSnapshot?: null): EventFilter;
        TotalStakesUpdated(_newTotalStakes?: null): EventFilter;
        TroveIndexUpdated(_borrower?: null, _newIndex?: null): EventFilter;
        TroveLiquidated(_borrower?: string | null, _debt?: null, _coll?: null, operation?: null): EventFilter;
        TroveManagerRedeemOpsAddressChanged(_troveManagerRedeemOps?: null): EventFilter;
        TroveSnapshotsUpdated(_L_ETH?: null, _L_ZUSDDebt?: null): EventFilter;
        TroveUpdated(_borrower?: string | null, _debt?: null, _coll?: null, stake?: null, operation?: null): EventFilter;
        ZEROStakingAddressChanged(_zeroStakingAddress?: null): EventFilter;
        ZEROTokenAddressChanged(_zeroTokenAddress?: null): EventFilter;
        ZUSDTokenAddressChanged(_newZUSDTokenAddress?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "ActivePoolAddressChanged"): _TypedLogDescription<{
        _activePoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "BaseRateUpdated"): _TypedLogDescription<{
        _baseRate: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "BorrowerOperationsAddressChanged"): _TypedLogDescription<{
        _newBorrowerOperationsAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "CollSurplusPoolAddressChanged"): _TypedLogDescription<{
        _collSurplusPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "DefaultPoolAddressChanged"): _TypedLogDescription<{
        _defaultPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "FeeDistributorAddressChanged"): _TypedLogDescription<{
        _feeDistributorAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "GasPoolAddressChanged"): _TypedLogDescription<{
        _gasPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "LTermsUpdated"): _TypedLogDescription<{
        _L_ETH: BigNumber;
        _L_ZUSDDebt: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "LastFeeOpTimeUpdated"): _TypedLogDescription<{
        _lastFeeOpTime: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "Liquidation"): _TypedLogDescription<{
        _liquidatedDebt: BigNumber;
        _liquidatedColl: BigNumber;
        _collGasCompensation: BigNumber;
        _ZUSDGasCompensation: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "LiquityBaseParamsAddressChanges"): _TypedLogDescription<{
        _borrowerOperationsAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "PriceFeedAddressChanged"): _TypedLogDescription<{
        _newPriceFeedAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "Redemption"): _TypedLogDescription<{
        _attemptedZUSDAmount: BigNumber;
        _actualZUSDAmount: BigNumber;
        _ETHSent: BigNumber;
        _ETHFee: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "SortedTrovesAddressChanged"): _TypedLogDescription<{
        _sortedTrovesAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "StabilityPoolAddressChanged"): _TypedLogDescription<{
        _stabilityPoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "SystemSnapshotsUpdated"): _TypedLogDescription<{
        _totalStakesSnapshot: BigNumber;
        _totalCollateralSnapshot: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TotalStakesUpdated"): _TypedLogDescription<{
        _newTotalStakes: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TroveIndexUpdated"): _TypedLogDescription<{
        _borrower: string;
        _newIndex: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TroveLiquidated"): _TypedLogDescription<{
        _borrower: string;
        _debt: BigNumber;
        _coll: BigNumber;
        operation: number;
    }>[];
    extractEvents(logs: Log[], name: "TroveManagerRedeemOpsAddressChanged"): _TypedLogDescription<{
        _troveManagerRedeemOps: string;
    }>[];
    extractEvents(logs: Log[], name: "TroveSnapshotsUpdated"): _TypedLogDescription<{
        _L_ETH: BigNumber;
        _L_ZUSDDebt: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TroveUpdated"): _TypedLogDescription<{
        _borrower: string;
        _debt: BigNumber;
        _coll: BigNumber;
        stake: BigNumber;
        operation: number;
    }>[];
    extractEvents(logs: Log[], name: "ZEROStakingAddressChanged"): _TypedLogDescription<{
        _zeroStakingAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "ZEROTokenAddressChanged"): _TypedLogDescription<{
        _zeroTokenAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "ZUSDTokenAddressChanged"): _TypedLogDescription<{
        _newZUSDTokenAddress: string;
    }>[];
}
interface TroveManagerRedeemOpsCalls {
    BETA(_overrides?: CallOverrides): Promise<BigNumber>;
    BOOTSTRAP_PERIOD(_overrides?: CallOverrides): Promise<BigNumber>;
    DECIMAL_PRECISION(_overrides?: CallOverrides): Promise<BigNumber>;
    L_ETH(_overrides?: CallOverrides): Promise<BigNumber>;
    L_ZUSDDebt(_overrides?: CallOverrides): Promise<BigNumber>;
    MINUTE_DECAY_FACTOR(_overrides?: CallOverrides): Promise<BigNumber>;
    MIN_NET_DEBT(_overrides?: CallOverrides): Promise<BigNumber>;
    NAME(_overrides?: CallOverrides): Promise<string>;
    SECONDS_IN_ONE_MINUTE(_overrides?: CallOverrides): Promise<BigNumber>;
    TroveOwners(arg0: BigNumberish, _overrides?: CallOverrides): Promise<string>;
    Troves(arg0: string, _overrides?: CallOverrides): Promise<{
        debt: BigNumber;
        coll: BigNumber;
        stake: BigNumber;
        status: number;
        arrayIndex: BigNumber;
    }>;
    ZUSD_GAS_COMPENSATION(_overrides?: CallOverrides): Promise<BigNumber>;
    _100pct(_overrides?: CallOverrides): Promise<BigNumber>;
    _getCurrentICR(_borrower: string, _price: BigNumberish, _overrides?: CallOverrides): Promise<BigNumber>;
    _getPendingETHReward(_borrower: string, _overrides?: CallOverrides): Promise<BigNumber>;
    _getPendingZUSDDebtReward(_borrower: string, _overrides?: CallOverrides): Promise<BigNumber>;
    _getRedemptionRate(_overrides?: CallOverrides): Promise<BigNumber>;
    _hasPendingRewards(_borrower: string, _overrides?: CallOverrides): Promise<boolean>;
    _stabilityPool(_overrides?: CallOverrides): Promise<string>;
    _zeroStaking(_overrides?: CallOverrides): Promise<string>;
    _zeroToken(_overrides?: CallOverrides): Promise<string>;
    _zusdToken(_overrides?: CallOverrides): Promise<string>;
    activePool(_overrides?: CallOverrides): Promise<string>;
    baseRate(_overrides?: CallOverrides): Promise<BigNumber>;
    borrowerOperationsAddress(_overrides?: CallOverrides): Promise<string>;
    defaultPool(_overrides?: CallOverrides): Promise<string>;
    feeDistributor(_overrides?: CallOverrides): Promise<string>;
    getEntireSystemColl(_overrides?: CallOverrides): Promise<BigNumber>;
    getEntireSystemDebt(_overrides?: CallOverrides): Promise<BigNumber>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    lastETHError_Redistribution(_overrides?: CallOverrides): Promise<BigNumber>;
    lastFeeOperationTime(_overrides?: CallOverrides): Promise<BigNumber>;
    lastZUSDDebtError_Redistribution(_overrides?: CallOverrides): Promise<BigNumber>;
    liquityBaseParams(_overrides?: CallOverrides): Promise<string>;
    priceFeed(_overrides?: CallOverrides): Promise<string>;
    rewardSnapshots(arg0: string, _overrides?: CallOverrides): Promise<{
        ETH: BigNumber;
        ZUSDDebt: BigNumber;
    }>;
    sortedTroves(_overrides?: CallOverrides): Promise<string>;
    totalCollateralSnapshot(_overrides?: CallOverrides): Promise<BigNumber>;
    totalStakes(_overrides?: CallOverrides): Promise<BigNumber>;
    totalStakesSnapshot(_overrides?: CallOverrides): Promise<BigNumber>;
    troveManagerRedeemOps(_overrides?: CallOverrides): Promise<string>;
}
interface TroveManagerRedeemOpsTransactions {
    redeemCollateral(_ZUSDamount: BigNumberish, _firstRedemptionHint: string, _upperPartialRedemptionHint: string, _lowerPartialRedemptionHint: string, _partialRedemptionHintNICR: BigNumberish, _maxIterations: BigNumberish, _maxFeePercentage: BigNumberish, _overrides?: Overrides): Promise<void>;
    redeemCollateralViaDLLR(_dllrAmount: BigNumberish, _firstRedemptionHint: string, _upperPartialRedemptionHint: string, _lowerPartialRedemptionHint: string, _partialRedemptionHintNICR: BigNumberish, _maxIterations: BigNumberish, _maxFeePercentage: BigNumberish, _permitParams: {
        deadline: BigNumberish;
        v: BigNumberish;
        r: BytesLike;
        s: BytesLike;
    }, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
}
export interface TroveManagerRedeemOps extends _TypedLiquityContract<TroveManagerRedeemOpsCalls, TroveManagerRedeemOpsTransactions> {
    readonly address: string;
    readonly filters: {
        BaseRateUpdated(_baseRate?: null): EventFilter;
        LTermsUpdated(_L_ETH?: null, _L_ZUSDDebt?: null): EventFilter;
        LastFeeOpTimeUpdated(_lastFeeOpTime?: null): EventFilter;
        Liquidation(_liquidatedDebt?: null, _liquidatedColl?: null, _collGasCompensation?: null, _ZUSDGasCompensation?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        Redemption(_attemptedZUSDAmount?: null, _actualZUSDAmount?: null, _ETHSent?: null, _ETHFee?: null): EventFilter;
        SystemSnapshotsUpdated(_totalStakesSnapshot?: null, _totalCollateralSnapshot?: null): EventFilter;
        TotalStakesUpdated(_newTotalStakes?: null): EventFilter;
        TroveIndexUpdated(_borrower?: null, _newIndex?: null): EventFilter;
        TroveLiquidated(_borrower?: string | null, _debt?: null, _coll?: null, _operation?: null): EventFilter;
        TroveSnapshotsUpdated(_L_ETH?: null, _L_ZUSDDebt?: null): EventFilter;
        TroveUpdated(_borrower?: string | null, _debt?: null, _coll?: null, _stake?: null, _operation?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "BaseRateUpdated"): _TypedLogDescription<{
        _baseRate: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "LTermsUpdated"): _TypedLogDescription<{
        _L_ETH: BigNumber;
        _L_ZUSDDebt: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "LastFeeOpTimeUpdated"): _TypedLogDescription<{
        _lastFeeOpTime: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "Liquidation"): _TypedLogDescription<{
        _liquidatedDebt: BigNumber;
        _liquidatedColl: BigNumber;
        _collGasCompensation: BigNumber;
        _ZUSDGasCompensation: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "Redemption"): _TypedLogDescription<{
        _attemptedZUSDAmount: BigNumber;
        _actualZUSDAmount: BigNumber;
        _ETHSent: BigNumber;
        _ETHFee: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "SystemSnapshotsUpdated"): _TypedLogDescription<{
        _totalStakesSnapshot: BigNumber;
        _totalCollateralSnapshot: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TotalStakesUpdated"): _TypedLogDescription<{
        _newTotalStakes: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TroveIndexUpdated"): _TypedLogDescription<{
        _borrower: string;
        _newIndex: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TroveLiquidated"): _TypedLogDescription<{
        _borrower: string;
        _debt: BigNumber;
        _coll: BigNumber;
        _operation: number;
    }>[];
    extractEvents(logs: Log[], name: "TroveSnapshotsUpdated"): _TypedLogDescription<{
        _L_ETH: BigNumber;
        _L_ZUSDDebt: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TroveUpdated"): _TypedLogDescription<{
        _borrower: string;
        _debt: BigNumber;
        _coll: BigNumber;
        _stake: BigNumber;
        _operation: number;
    }>[];
}
interface UpgradableProxyCalls {
    getImplementation(_overrides?: CallOverrides): Promise<string>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
}
interface UpgradableProxyTransactions {
    setImplementation(_implementation: string, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
}
export interface UpgradableProxy extends _TypedLiquityContract<UpgradableProxyCalls, UpgradableProxyTransactions> {
    readonly address: string;
    readonly filters: {
        ImplementationChanged(_oldImplementation?: string | null, _newImplementation?: string | null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
    };
    extractEvents(logs: Log[], name: "ImplementationChanged"): _TypedLogDescription<{
        _oldImplementation: string;
        _newImplementation: string;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
}
interface LiquityBaseParamsCalls {
    BORROWING_FEE_FLOOR(_overrides?: CallOverrides): Promise<BigNumber>;
    CCR(_overrides?: CallOverrides): Promise<BigNumber>;
    DECIMAL_PRECISION(_overrides?: CallOverrides): Promise<BigNumber>;
    MAX_BORROWING_FEE(_overrides?: CallOverrides): Promise<BigNumber>;
    MCR(_overrides?: CallOverrides): Promise<BigNumber>;
    PERCENT_DIVISOR(_overrides?: CallOverrides): Promise<BigNumber>;
    REDEMPTION_FEE_FLOOR(_overrides?: CallOverrides): Promise<BigNumber>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
}
interface LiquityBaseParamsTransactions {
    initialize(_overrides?: Overrides): Promise<void>;
    setBorrowingFeeFloor(BORROWING_FEE_FLOOR_: BigNumberish, _overrides?: Overrides): Promise<void>;
    setCCR(CCR_: BigNumberish, _overrides?: Overrides): Promise<void>;
    setMCR(MCR_: BigNumberish, _overrides?: Overrides): Promise<void>;
    setMaxBorrowingFee(MAX_BORROWING_FEE_: BigNumberish, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
    setPercentDivisor(PERCENT_DIVISOR_: BigNumberish, _overrides?: Overrides): Promise<void>;
    setRedemptionFeeFloor(REDEMPTION_FEE_FLOOR_: BigNumberish, _overrides?: Overrides): Promise<void>;
}
export interface LiquityBaseParams extends _TypedLiquityContract<LiquityBaseParamsCalls, LiquityBaseParamsTransactions> {
    readonly address: string;
    readonly filters: {
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
    };
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
}
interface MockFeeSharingCollectorCalls {
}
interface MockFeeSharingCollectorTransactions {
    transferRBTC(_overrides?: PayableOverrides): Promise<void>;
    transferTokens(_token: string, _amount: BigNumberish, _overrides?: Overrides): Promise<void>;
}
export interface MockFeeSharingCollector extends _TypedLiquityContract<MockFeeSharingCollectorCalls, MockFeeSharingCollectorTransactions> {
    readonly address: string;
    readonly filters: {};
}
interface FeeDistributorCalls {
    FEE_TO_FEE_SHARING_COLLECTOR(_overrides?: CallOverrides): Promise<BigNumber>;
    NAME(_overrides?: CallOverrides): Promise<string>;
    activePoolAddress(_overrides?: CallOverrides): Promise<string>;
    borrowerOperations(_overrides?: CallOverrides): Promise<string>;
    feeSharingCollector(_overrides?: CallOverrides): Promise<string>;
    getOwner(_overrides?: CallOverrides): Promise<string>;
    troveManager(_overrides?: CallOverrides): Promise<string>;
    wrbtc(_overrides?: CallOverrides): Promise<string>;
    zeroStaking(_overrides?: CallOverrides): Promise<string>;
    zusdToken(_overrides?: CallOverrides): Promise<string>;
}
interface FeeDistributorTransactions {
    distributeFees(_overrides?: Overrides): Promise<void>;
    setAddresses(_feeSharingCollectorAddress: string, _zeroStakingAddress: string, _borrowerOperationsAddress: string, _troveManagerAddress: string, _wrbtcAddress: string, _zusdTokenAddress: string, _activePoolAddress: string, _overrides?: Overrides): Promise<void>;
    setFeeToFeeSharingCollector(FEE_TO_FEE_SHARING_COLLECTOR_: BigNumberish, _overrides?: Overrides): Promise<void>;
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
}
export interface FeeDistributor extends _TypedLiquityContract<FeeDistributorCalls, FeeDistributorTransactions> {
    readonly address: string;
    readonly filters: {
        ActivePoolAddressSet(_activePoolAddress?: null): EventFilter;
        BorrowerOperationsAddressChanged(_borrowerOperationsAddress?: null): EventFilter;
        FeeSharingCollectorAddressChanged(_feeSharingCollectorAddress?: null): EventFilter;
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
        RBTCistributed(_rbtcDistributedAmount?: null): EventFilter;
        TroveManagerAddressChanged(_troveManagerAddress?: null): EventFilter;
        WrbtcAddressChanged(_wrbtcAddress?: null): EventFilter;
        ZUSDDistributed(_zusdDistributedAmount?: null): EventFilter;
        ZUSDTokenAddressChanged(_zusdTokenAddress?: null): EventFilter;
        ZeroStakingAddressChanged(_zeroStakingAddress?: null): EventFilter;
    };
    extractEvents(logs: Log[], name: "ActivePoolAddressSet"): _TypedLogDescription<{
        _activePoolAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "BorrowerOperationsAddressChanged"): _TypedLogDescription<{
        _borrowerOperationsAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "FeeSharingCollectorAddressChanged"): _TypedLogDescription<{
        _feeSharingCollectorAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
    extractEvents(logs: Log[], name: "RBTCistributed"): _TypedLogDescription<{
        _rbtcDistributedAmount: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "TroveManagerAddressChanged"): _TypedLogDescription<{
        _troveManagerAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "WrbtcAddressChanged"): _TypedLogDescription<{
        _wrbtcAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "ZUSDDistributed"): _TypedLogDescription<{
        _zusdDistributedAmount: BigNumber;
    }>[];
    extractEvents(logs: Log[], name: "ZUSDTokenAddressChanged"): _TypedLogDescription<{
        _zusdTokenAddress: string;
    }>[];
    extractEvents(logs: Log[], name: "ZeroStakingAddressChanged"): _TypedLogDescription<{
        _zeroStakingAddress: string;
    }>[];
}
interface OwnableCalls {
    getOwner(_overrides?: CallOverrides): Promise<string>;
}
interface OwnableTransactions {
    setOwner(_owner: string, _overrides?: Overrides): Promise<void>;
}
export interface Ownable extends _TypedLiquityContract<OwnableCalls, OwnableTransactions> {
    readonly address: string;
    readonly filters: {
        OwnershipTransferred(previousOwner?: string | null, newOwner?: string | null): EventFilter;
    };
    extractEvents(logs: Log[], name: "OwnershipTransferred"): _TypedLogDescription<{
        previousOwner: string;
        newOwner: string;
    }>[];
}
export {};
//# sourceMappingURL=index.d.ts.map