import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from 'ethers';
import type { FunctionFragment, Result, EventFragment } from '@ethersproject/abi';
import type { Listener, Provider } from '@ethersproject/providers';
import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from './common';
export interface StabilityPoolInterface extends utils.Interface {
    functions: {
        'ARTH_GAS_COMPENSATION()': FunctionFragment;
        'CCR()': FunctionFragment;
        'DECIMAL_PRECISION()': FunctionFragment;
        'MCR()': FunctionFragment;
        'MIN_NET_DEBT()': FunctionFragment;
        'NAME()': FunctionFragment;
        'P()': FunctionFragment;
        'PERCENT_DIVISOR()': FunctionFragment;
        'SCALE_FACTOR()': FunctionFragment;
        '_100pct()': FunctionFragment;
        'activePool()': FunctionFragment;
        'arthToken()': FunctionFragment;
        'borrowerOperations()': FunctionFragment;
        'communityIssuance()': FunctionFragment;
        'currentEpoch()': FunctionFragment;
        'currentScale()': FunctionFragment;
        'defaultPool()': FunctionFragment;
        'depositSnapshots(address)': FunctionFragment;
        'deposits(address)': FunctionFragment;
        'epochToScaleToG(uint128,uint128)': FunctionFragment;
        'epochToScaleToSum(uint128,uint128)': FunctionFragment;
        'frontEndSnapshots(address)': FunctionFragment;
        'frontEndStakes(address)': FunctionFragment;
        'frontEnds(address)': FunctionFragment;
        'getBorrowingFeeFloor()': FunctionFragment;
        'getCompoundedARTHDeposit(address)': FunctionFragment;
        'getCompoundedFrontEndStake(address)': FunctionFragment;
        'getDepositorETHGain(address)': FunctionFragment;
        'getDepositorMAHAGain(address)': FunctionFragment;
        'getETH()': FunctionFragment;
        'getEntireSystemColl()': FunctionFragment;
        'getEntireSystemDebt()': FunctionFragment;
        'getFrontEndMAHAGain(address)': FunctionFragment;
        'getMaxBorrowingFee()': FunctionFragment;
        'getPriceFeed()': FunctionFragment;
        'getRedemptionFeeFloor()': FunctionFragment;
        'getTotalARTHDeposits()': FunctionFragment;
        'governance()': FunctionFragment;
        'isOwner()': FunctionFragment;
        'lastARTHLossError_Offset()': FunctionFragment;
        'lastETHError_Offset()': FunctionFragment;
        'lastMAHAError()': FunctionFragment;
        'offset(uint256,uint256)': FunctionFragment;
        'owner()': FunctionFragment;
        'provideToSP(uint256,address)': FunctionFragment;
        'registerFrontEnd(uint256)': FunctionFragment;
        'setAddresses(address,address,address,address,address,address,address)': FunctionFragment;
        'sortedTroves()': FunctionFragment;
        'transferOwnership(address)': FunctionFragment;
        'troveManager()': FunctionFragment;
        'withdrawETHGainToTrove(address,address)': FunctionFragment;
        'withdrawFromSP(uint256)': FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: 'ARTH_GAS_COMPENSATION' | 'CCR' | 'DECIMAL_PRECISION' | 'MCR' | 'MIN_NET_DEBT' | 'NAME' | 'P' | 'PERCENT_DIVISOR' | 'SCALE_FACTOR' | '_100pct' | 'activePool' | 'arthToken' | 'borrowerOperations' | 'communityIssuance' | 'currentEpoch' | 'currentScale' | 'defaultPool' | 'depositSnapshots' | 'deposits' | 'epochToScaleToG' | 'epochToScaleToSum' | 'frontEndSnapshots' | 'frontEndStakes' | 'frontEnds' | 'getBorrowingFeeFloor' | 'getCompoundedARTHDeposit' | 'getCompoundedFrontEndStake' | 'getDepositorETHGain' | 'getDepositorMAHAGain' | 'getETH' | 'getEntireSystemColl' | 'getEntireSystemDebt' | 'getFrontEndMAHAGain' | 'getMaxBorrowingFee' | 'getPriceFeed' | 'getRedemptionFeeFloor' | 'getTotalARTHDeposits' | 'governance' | 'isOwner' | 'lastARTHLossError_Offset' | 'lastETHError_Offset' | 'lastMAHAError' | 'offset' | 'owner' | 'provideToSP' | 'registerFrontEnd' | 'setAddresses' | 'sortedTroves' | 'transferOwnership' | 'troveManager' | 'withdrawETHGainToTrove' | 'withdrawFromSP'): FunctionFragment;
    encodeFunctionData(functionFragment: 'ARTH_GAS_COMPENSATION', values?: undefined): string;
    encodeFunctionData(functionFragment: 'CCR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'DECIMAL_PRECISION', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MCR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'MIN_NET_DEBT', values?: undefined): string;
    encodeFunctionData(functionFragment: 'NAME', values?: undefined): string;
    encodeFunctionData(functionFragment: 'P', values?: undefined): string;
    encodeFunctionData(functionFragment: 'PERCENT_DIVISOR', values?: undefined): string;
    encodeFunctionData(functionFragment: 'SCALE_FACTOR', values?: undefined): string;
    encodeFunctionData(functionFragment: '_100pct', values?: undefined): string;
    encodeFunctionData(functionFragment: 'activePool', values?: undefined): string;
    encodeFunctionData(functionFragment: 'arthToken', values?: undefined): string;
    encodeFunctionData(functionFragment: 'borrowerOperations', values?: undefined): string;
    encodeFunctionData(functionFragment: 'communityIssuance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'currentEpoch', values?: undefined): string;
    encodeFunctionData(functionFragment: 'currentScale', values?: undefined): string;
    encodeFunctionData(functionFragment: 'defaultPool', values?: undefined): string;
    encodeFunctionData(functionFragment: 'depositSnapshots', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'deposits', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'epochToScaleToG', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'epochToScaleToSum', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'frontEndSnapshots', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'frontEndStakes', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'frontEnds', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getBorrowingFeeFloor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getCompoundedARTHDeposit', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getCompoundedFrontEndStake', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getDepositorETHGain', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getDepositorMAHAGain', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getETH', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getEntireSystemColl', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getEntireSystemDebt', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getFrontEndMAHAGain', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'getMaxBorrowingFee', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getPriceFeed', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getRedemptionFeeFloor', values?: undefined): string;
    encodeFunctionData(functionFragment: 'getTotalARTHDeposits', values?: undefined): string;
    encodeFunctionData(functionFragment: 'governance', values?: undefined): string;
    encodeFunctionData(functionFragment: 'isOwner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'lastARTHLossError_Offset', values?: undefined): string;
    encodeFunctionData(functionFragment: 'lastETHError_Offset', values?: undefined): string;
    encodeFunctionData(functionFragment: 'lastMAHAError', values?: undefined): string;
    encodeFunctionData(functionFragment: 'offset', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'owner', values?: undefined): string;
    encodeFunctionData(functionFragment: 'provideToSP', values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'registerFrontEnd', values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: 'setAddresses', values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>
    ]): string;
    encodeFunctionData(functionFragment: 'sortedTroves', values?: undefined): string;
    encodeFunctionData(functionFragment: 'transferOwnership', values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'troveManager', values?: undefined): string;
    encodeFunctionData(functionFragment: 'withdrawETHGainToTrove', values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: 'withdrawFromSP', values: [PromiseOrValue<BigNumberish>]): string;
    decodeFunctionResult(functionFragment: 'ARTH_GAS_COMPENSATION', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'CCR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'DECIMAL_PRECISION', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MCR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'MIN_NET_DEBT', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'NAME', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'P', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'PERCENT_DIVISOR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'SCALE_FACTOR', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: '_100pct', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'activePool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'arthToken', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'borrowerOperations', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'communityIssuance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'currentEpoch', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'currentScale', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'defaultPool', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'depositSnapshots', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'deposits', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'epochToScaleToG', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'epochToScaleToSum', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'frontEndSnapshots', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'frontEndStakes', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'frontEnds', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getBorrowingFeeFloor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCompoundedARTHDeposit', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getCompoundedFrontEndStake', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDepositorETHGain', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getDepositorMAHAGain', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getETH', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getEntireSystemColl', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getEntireSystemDebt', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getFrontEndMAHAGain', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getMaxBorrowingFee', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getPriceFeed', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getRedemptionFeeFloor', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'getTotalARTHDeposits', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'governance', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'isOwner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastARTHLossError_Offset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastETHError_Offset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'lastMAHAError', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'offset', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'owner', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'provideToSP', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'registerFrontEnd', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'setAddresses', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'sortedTroves', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'transferOwnership', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'troveManager', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawETHGainToTrove', data: BytesLike): Result;
    decodeFunctionResult(functionFragment: 'withdrawFromSP', data: BytesLike): Result;
    events: {
        'ARTHTokenAddressChanged(address)': EventFragment;
        'ActivePoolAddressChanged(address)': EventFragment;
        'BorrowerOperationsAddressChanged(address)': EventFragment;
        'CommunityIssuanceAddressChanged(address)': EventFragment;
        'DefaultPoolAddressChanged(address)': EventFragment;
        'DepositSnapshotUpdated(address,uint256,uint256,uint256)': EventFragment;
        'ETHGainWithdrawn(address,uint256,uint256)': EventFragment;
        'EpochUpdated(uint128)': EventFragment;
        'EtherSent(address,uint256)': EventFragment;
        'FrontEndRegistered(address,uint256)': EventFragment;
        'FrontEndSnapshotUpdated(address,uint256,uint256)': EventFragment;
        'FrontEndStakeChanged(address,uint256,address)': EventFragment;
        'FrontEndTagSet(address,address)': EventFragment;
        'G_Updated(uint256,uint128,uint128)': EventFragment;
        'GovernanceAddressChanged(address)': EventFragment;
        'MAHAPaidToDepositor(address,uint256)': EventFragment;
        'MAHAPaidToFrontEnd(address,uint256)': EventFragment;
        'OwnershipTransferred(address,address)': EventFragment;
        'P_Updated(uint256)': EventFragment;
        'S_Updated(uint256,uint128,uint128)': EventFragment;
        'ScaleUpdated(uint128)': EventFragment;
        'SortedTrovesAddressChanged(address)': EventFragment;
        'StabilityPoolARTHBalanceUpdated(uint256)': EventFragment;
        'StabilityPoolETHBalanceUpdated(uint256)': EventFragment;
        'TroveManagerAddressChanged(address)': EventFragment;
        'UserDepositChanged(address,uint256)': EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: 'ARTHTokenAddressChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ActivePoolAddressChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'BorrowerOperationsAddressChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'CommunityIssuanceAddressChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DefaultPoolAddressChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'DepositSnapshotUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ETHGainWithdrawn'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'EpochUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'EtherSent'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FrontEndRegistered'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FrontEndSnapshotUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FrontEndStakeChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'FrontEndTagSet'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'G_Updated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'GovernanceAddressChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'MAHAPaidToDepositor'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'MAHAPaidToFrontEnd'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'OwnershipTransferred'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'P_Updated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'S_Updated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'ScaleUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'SortedTrovesAddressChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StabilityPoolARTHBalanceUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'StabilityPoolETHBalanceUpdated'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'TroveManagerAddressChanged'): EventFragment;
    getEvent(nameOrSignatureOrTopic: 'UserDepositChanged'): EventFragment;
}
export interface ARTHTokenAddressChangedEventObject {
    _newARTHTokenAddress: string;
}
export declare type ARTHTokenAddressChangedEvent = TypedEvent<[string], ARTHTokenAddressChangedEventObject>;
export declare type ARTHTokenAddressChangedEventFilter = TypedEventFilter<ARTHTokenAddressChangedEvent>;
export interface ActivePoolAddressChangedEventObject {
    _newActivePoolAddress: string;
}
export declare type ActivePoolAddressChangedEvent = TypedEvent<[string], ActivePoolAddressChangedEventObject>;
export declare type ActivePoolAddressChangedEventFilter = TypedEventFilter<ActivePoolAddressChangedEvent>;
export interface BorrowerOperationsAddressChangedEventObject {
    _newBorrowerOperationsAddress: string;
}
export declare type BorrowerOperationsAddressChangedEvent = TypedEvent<[string], BorrowerOperationsAddressChangedEventObject>;
export declare type BorrowerOperationsAddressChangedEventFilter = TypedEventFilter<BorrowerOperationsAddressChangedEvent>;
export interface CommunityIssuanceAddressChangedEventObject {
    _newCommunityIssuanceAddress: string;
}
export declare type CommunityIssuanceAddressChangedEvent = TypedEvent<[string], CommunityIssuanceAddressChangedEventObject>;
export declare type CommunityIssuanceAddressChangedEventFilter = TypedEventFilter<CommunityIssuanceAddressChangedEvent>;
export interface DefaultPoolAddressChangedEventObject {
    _newDefaultPoolAddress: string;
}
export declare type DefaultPoolAddressChangedEvent = TypedEvent<[string], DefaultPoolAddressChangedEventObject>;
export declare type DefaultPoolAddressChangedEventFilter = TypedEventFilter<DefaultPoolAddressChangedEvent>;
export interface DepositSnapshotUpdatedEventObject {
    _depositor: string;
    _P: BigNumber;
    _S: BigNumber;
    _G: BigNumber;
}
export declare type DepositSnapshotUpdatedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber,
    BigNumber
], DepositSnapshotUpdatedEventObject>;
export declare type DepositSnapshotUpdatedEventFilter = TypedEventFilter<DepositSnapshotUpdatedEvent>;
export interface ETHGainWithdrawnEventObject {
    _depositor: string;
    _ETH: BigNumber;
    _ARTHLoss: BigNumber;
}
export declare type ETHGainWithdrawnEvent = TypedEvent<[string, BigNumber, BigNumber], ETHGainWithdrawnEventObject>;
export declare type ETHGainWithdrawnEventFilter = TypedEventFilter<ETHGainWithdrawnEvent>;
export interface EpochUpdatedEventObject {
    _currentEpoch: BigNumber;
}
export declare type EpochUpdatedEvent = TypedEvent<[BigNumber], EpochUpdatedEventObject>;
export declare type EpochUpdatedEventFilter = TypedEventFilter<EpochUpdatedEvent>;
export interface EtherSentEventObject {
    _to: string;
    _amount: BigNumber;
}
export declare type EtherSentEvent = TypedEvent<[string, BigNumber], EtherSentEventObject>;
export declare type EtherSentEventFilter = TypedEventFilter<EtherSentEvent>;
export interface FrontEndRegisteredEventObject {
    _frontEnd: string;
    _kickbackRate: BigNumber;
}
export declare type FrontEndRegisteredEvent = TypedEvent<[string, BigNumber], FrontEndRegisteredEventObject>;
export declare type FrontEndRegisteredEventFilter = TypedEventFilter<FrontEndRegisteredEvent>;
export interface FrontEndSnapshotUpdatedEventObject {
    _frontEnd: string;
    _P: BigNumber;
    _G: BigNumber;
}
export declare type FrontEndSnapshotUpdatedEvent = TypedEvent<[
    string,
    BigNumber,
    BigNumber
], FrontEndSnapshotUpdatedEventObject>;
export declare type FrontEndSnapshotUpdatedEventFilter = TypedEventFilter<FrontEndSnapshotUpdatedEvent>;
export interface FrontEndStakeChangedEventObject {
    _frontEnd: string;
    _newFrontEndStake: BigNumber;
    _depositor: string;
}
export declare type FrontEndStakeChangedEvent = TypedEvent<[string, BigNumber, string], FrontEndStakeChangedEventObject>;
export declare type FrontEndStakeChangedEventFilter = TypedEventFilter<FrontEndStakeChangedEvent>;
export interface FrontEndTagSetEventObject {
    _depositor: string;
    _frontEnd: string;
}
export declare type FrontEndTagSetEvent = TypedEvent<[string, string], FrontEndTagSetEventObject>;
export declare type FrontEndTagSetEventFilter = TypedEventFilter<FrontEndTagSetEvent>;
export interface G_UpdatedEventObject {
    _G: BigNumber;
    _epoch: BigNumber;
    _scale: BigNumber;
}
export declare type G_UpdatedEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], G_UpdatedEventObject>;
export declare type G_UpdatedEventFilter = TypedEventFilter<G_UpdatedEvent>;
export interface GovernanceAddressChangedEventObject {
    _newGovernanceAddress: string;
}
export declare type GovernanceAddressChangedEvent = TypedEvent<[string], GovernanceAddressChangedEventObject>;
export declare type GovernanceAddressChangedEventFilter = TypedEventFilter<GovernanceAddressChangedEvent>;
export interface MAHAPaidToDepositorEventObject {
    _depositor: string;
    _MAHA: BigNumber;
}
export declare type MAHAPaidToDepositorEvent = TypedEvent<[string, BigNumber], MAHAPaidToDepositorEventObject>;
export declare type MAHAPaidToDepositorEventFilter = TypedEventFilter<MAHAPaidToDepositorEvent>;
export interface MAHAPaidToFrontEndEventObject {
    _frontEnd: string;
    _MAHA: BigNumber;
}
export declare type MAHAPaidToFrontEndEvent = TypedEvent<[string, BigNumber], MAHAPaidToFrontEndEventObject>;
export declare type MAHAPaidToFrontEndEventFilter = TypedEventFilter<MAHAPaidToFrontEndEvent>;
export interface OwnershipTransferredEventObject {
    previousOwner: string;
    newOwner: string;
}
export declare type OwnershipTransferredEvent = TypedEvent<[string, string], OwnershipTransferredEventObject>;
export declare type OwnershipTransferredEventFilter = TypedEventFilter<OwnershipTransferredEvent>;
export interface P_UpdatedEventObject {
    _P: BigNumber;
}
export declare type P_UpdatedEvent = TypedEvent<[BigNumber], P_UpdatedEventObject>;
export declare type P_UpdatedEventFilter = TypedEventFilter<P_UpdatedEvent>;
export interface S_UpdatedEventObject {
    _S: BigNumber;
    _epoch: BigNumber;
    _scale: BigNumber;
}
export declare type S_UpdatedEvent = TypedEvent<[BigNumber, BigNumber, BigNumber], S_UpdatedEventObject>;
export declare type S_UpdatedEventFilter = TypedEventFilter<S_UpdatedEvent>;
export interface ScaleUpdatedEventObject {
    _currentScale: BigNumber;
}
export declare type ScaleUpdatedEvent = TypedEvent<[BigNumber], ScaleUpdatedEventObject>;
export declare type ScaleUpdatedEventFilter = TypedEventFilter<ScaleUpdatedEvent>;
export interface SortedTrovesAddressChangedEventObject {
    _newSortedTrovesAddress: string;
}
export declare type SortedTrovesAddressChangedEvent = TypedEvent<[string], SortedTrovesAddressChangedEventObject>;
export declare type SortedTrovesAddressChangedEventFilter = TypedEventFilter<SortedTrovesAddressChangedEvent>;
export interface StabilityPoolARTHBalanceUpdatedEventObject {
    _newBalance: BigNumber;
}
export declare type StabilityPoolARTHBalanceUpdatedEvent = TypedEvent<[BigNumber], StabilityPoolARTHBalanceUpdatedEventObject>;
export declare type StabilityPoolARTHBalanceUpdatedEventFilter = TypedEventFilter<StabilityPoolARTHBalanceUpdatedEvent>;
export interface StabilityPoolETHBalanceUpdatedEventObject {
    _newBalance: BigNumber;
}
export declare type StabilityPoolETHBalanceUpdatedEvent = TypedEvent<[BigNumber], StabilityPoolETHBalanceUpdatedEventObject>;
export declare type StabilityPoolETHBalanceUpdatedEventFilter = TypedEventFilter<StabilityPoolETHBalanceUpdatedEvent>;
export interface TroveManagerAddressChangedEventObject {
    _newTroveManagerAddress: string;
}
export declare type TroveManagerAddressChangedEvent = TypedEvent<[string], TroveManagerAddressChangedEventObject>;
export declare type TroveManagerAddressChangedEventFilter = TypedEventFilter<TroveManagerAddressChangedEvent>;
export interface UserDepositChangedEventObject {
    _depositor: string;
    _newDeposit: BigNumber;
}
export declare type UserDepositChangedEvent = TypedEvent<[string, BigNumber], UserDepositChangedEventObject>;
export declare type UserDepositChangedEventFilter = TypedEventFilter<UserDepositChangedEvent>;
export interface StabilityPool extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: StabilityPoolInterface;
    queryFilter<TEvent extends TypedEvent>(event: TypedEventFilter<TEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TEvent>>;
    listeners<TEvent extends TypedEvent>(eventFilter?: TypedEventFilter<TEvent>): Array<TypedListener<TEvent>>;
    listeners(eventName?: string): Array<Listener>;
    removeAllListeners<TEvent extends TypedEvent>(eventFilter: TypedEventFilter<TEvent>): this;
    removeAllListeners(eventName?: string): this;
    off: OnEvent<this>;
    on: OnEvent<this>;
    once: OnEvent<this>;
    removeListener: OnEvent<this>;
    functions: {
        ARTH_GAS_COMPENSATION(overrides?: CallOverrides): Promise<[BigNumber]>;
        CCR(overrides?: CallOverrides): Promise<[BigNumber]>;
        DECIMAL_PRECISION(overrides?: CallOverrides): Promise<[BigNumber]>;
        MCR(overrides?: CallOverrides): Promise<[BigNumber]>;
        MIN_NET_DEBT(overrides?: CallOverrides): Promise<[BigNumber]>;
        NAME(overrides?: CallOverrides): Promise<[string]>;
        P(overrides?: CallOverrides): Promise<[BigNumber]>;
        PERCENT_DIVISOR(overrides?: CallOverrides): Promise<[BigNumber]>;
        SCALE_FACTOR(overrides?: CallOverrides): Promise<[BigNumber]>;
        _100pct(overrides?: CallOverrides): Promise<[BigNumber]>;
        activePool(overrides?: CallOverrides): Promise<[string]>;
        arthToken(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: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            S: BigNumber;
            P: BigNumber;
            G: BigNumber;
            scale: BigNumber;
            epoch: BigNumber;
        }>;
        deposits(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, string] & {
            initialValue: BigNumber;
            frontEndTag: string;
        }>;
        epochToScaleToG(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        epochToScaleToSum(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[BigNumber]>;
        frontEndSnapshots(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            S: BigNumber;
            P: BigNumber;
            G: BigNumber;
            scale: BigNumber;
            epoch: BigNumber;
        }>;
        frontEndStakes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        frontEnds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, boolean] & {
            kickbackRate: BigNumber;
            registered: boolean;
        }>;
        getBorrowingFeeFloor(overrides?: CallOverrides): Promise<[BigNumber]>;
        getCompoundedARTHDeposit(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getCompoundedFrontEndStake(_frontEnd: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getDepositorETHGain(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getDepositorMAHAGain(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getETH(overrides?: CallOverrides): Promise<[BigNumber]>;
        getEntireSystemColl(overrides?: CallOverrides): Promise<[BigNumber] & {
            entireSystemColl: BigNumber;
        }>;
        getEntireSystemDebt(overrides?: CallOverrides): Promise<[BigNumber] & {
            entireSystemDebt: BigNumber;
        }>;
        getFrontEndMAHAGain(_frontEnd: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        getMaxBorrowingFee(overrides?: CallOverrides): Promise<[BigNumber]>;
        getPriceFeed(overrides?: CallOverrides): Promise<[string]>;
        getRedemptionFeeFloor(overrides?: CallOverrides): Promise<[BigNumber]>;
        getTotalARTHDeposits(overrides?: CallOverrides): Promise<[BigNumber]>;
        governance(overrides?: CallOverrides): Promise<[string]>;
        isOwner(overrides?: CallOverrides): Promise<[boolean]>;
        lastARTHLossError_Offset(overrides?: CallOverrides): Promise<[BigNumber]>;
        lastETHError_Offset(overrides?: CallOverrides): Promise<[BigNumber]>;
        lastMAHAError(overrides?: CallOverrides): Promise<[BigNumber]>;
        offset(_debtToOffset: PromiseOrValue<BigNumberish>, _collToAdd: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        owner(overrides?: CallOverrides): Promise<[string]>;
        provideToSP(_amount: PromiseOrValue<BigNumberish>, _frontEndTag: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        registerFrontEnd(_kickbackRate: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        setAddresses(_borrowerOperationsAddress: PromiseOrValue<string>, _troveManagerAddress: PromiseOrValue<string>, _activePoolAddress: PromiseOrValue<string>, _arthTokenAddress: PromiseOrValue<string>, _sortedTrovesAddress: PromiseOrValue<string>, _governanceAddress: PromiseOrValue<string>, _communityIssuanceAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        sortedTroves(overrides?: CallOverrides): Promise<[string]>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        troveManager(overrides?: CallOverrides): Promise<[string]>;
        withdrawETHGainToTrove(_upperHint: PromiseOrValue<string>, _lowerHint: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        withdrawFromSP(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
    };
    ARTH_GAS_COMPENSATION(overrides?: CallOverrides): Promise<BigNumber>;
    CCR(overrides?: CallOverrides): Promise<BigNumber>;
    DECIMAL_PRECISION(overrides?: CallOverrides): Promise<BigNumber>;
    MCR(overrides?: CallOverrides): Promise<BigNumber>;
    MIN_NET_DEBT(overrides?: CallOverrides): Promise<BigNumber>;
    NAME(overrides?: CallOverrides): Promise<string>;
    P(overrides?: CallOverrides): Promise<BigNumber>;
    PERCENT_DIVISOR(overrides?: CallOverrides): Promise<BigNumber>;
    SCALE_FACTOR(overrides?: CallOverrides): Promise<BigNumber>;
    _100pct(overrides?: CallOverrides): Promise<BigNumber>;
    activePool(overrides?: CallOverrides): Promise<string>;
    arthToken(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: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        S: BigNumber;
        P: BigNumber;
        G: BigNumber;
        scale: BigNumber;
        epoch: BigNumber;
    }>;
    deposits(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, string] & {
        initialValue: BigNumber;
        frontEndTag: string;
    }>;
    epochToScaleToG(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    epochToScaleToSum(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
    frontEndSnapshots(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        S: BigNumber;
        P: BigNumber;
        G: BigNumber;
        scale: BigNumber;
        epoch: BigNumber;
    }>;
    frontEndStakes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    frontEnds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, boolean] & {
        kickbackRate: BigNumber;
        registered: boolean;
    }>;
    getBorrowingFeeFloor(overrides?: CallOverrides): Promise<BigNumber>;
    getCompoundedARTHDeposit(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getCompoundedFrontEndStake(_frontEnd: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getDepositorETHGain(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getDepositorMAHAGain(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getETH(overrides?: CallOverrides): Promise<BigNumber>;
    getEntireSystemColl(overrides?: CallOverrides): Promise<BigNumber>;
    getEntireSystemDebt(overrides?: CallOverrides): Promise<BigNumber>;
    getFrontEndMAHAGain(_frontEnd: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    getMaxBorrowingFee(overrides?: CallOverrides): Promise<BigNumber>;
    getPriceFeed(overrides?: CallOverrides): Promise<string>;
    getRedemptionFeeFloor(overrides?: CallOverrides): Promise<BigNumber>;
    getTotalARTHDeposits(overrides?: CallOverrides): Promise<BigNumber>;
    governance(overrides?: CallOverrides): Promise<string>;
    isOwner(overrides?: CallOverrides): Promise<boolean>;
    lastARTHLossError_Offset(overrides?: CallOverrides): Promise<BigNumber>;
    lastETHError_Offset(overrides?: CallOverrides): Promise<BigNumber>;
    lastMAHAError(overrides?: CallOverrides): Promise<BigNumber>;
    offset(_debtToOffset: PromiseOrValue<BigNumberish>, _collToAdd: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    owner(overrides?: CallOverrides): Promise<string>;
    provideToSP(_amount: PromiseOrValue<BigNumberish>, _frontEndTag: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    registerFrontEnd(_kickbackRate: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    setAddresses(_borrowerOperationsAddress: PromiseOrValue<string>, _troveManagerAddress: PromiseOrValue<string>, _activePoolAddress: PromiseOrValue<string>, _arthTokenAddress: PromiseOrValue<string>, _sortedTrovesAddress: PromiseOrValue<string>, _governanceAddress: PromiseOrValue<string>, _communityIssuanceAddress: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    sortedTroves(overrides?: CallOverrides): Promise<string>;
    transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    troveManager(overrides?: CallOverrides): Promise<string>;
    withdrawETHGainToTrove(_upperHint: PromiseOrValue<string>, _lowerHint: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    withdrawFromSP(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    callStatic: {
        ARTH_GAS_COMPENSATION(overrides?: CallOverrides): Promise<BigNumber>;
        CCR(overrides?: CallOverrides): Promise<BigNumber>;
        DECIMAL_PRECISION(overrides?: CallOverrides): Promise<BigNumber>;
        MCR(overrides?: CallOverrides): Promise<BigNumber>;
        MIN_NET_DEBT(overrides?: CallOverrides): Promise<BigNumber>;
        NAME(overrides?: CallOverrides): Promise<string>;
        P(overrides?: CallOverrides): Promise<BigNumber>;
        PERCENT_DIVISOR(overrides?: CallOverrides): Promise<BigNumber>;
        SCALE_FACTOR(overrides?: CallOverrides): Promise<BigNumber>;
        _100pct(overrides?: CallOverrides): Promise<BigNumber>;
        activePool(overrides?: CallOverrides): Promise<string>;
        arthToken(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: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            S: BigNumber;
            P: BigNumber;
            G: BigNumber;
            scale: BigNumber;
            epoch: BigNumber;
        }>;
        deposits(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, string] & {
            initialValue: BigNumber;
            frontEndTag: string;
        }>;
        epochToScaleToG(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        epochToScaleToSum(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        frontEndSnapshots(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            S: BigNumber;
            P: BigNumber;
            G: BigNumber;
            scale: BigNumber;
            epoch: BigNumber;
        }>;
        frontEndStakes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        frontEnds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber, boolean] & {
            kickbackRate: BigNumber;
            registered: boolean;
        }>;
        getBorrowingFeeFloor(overrides?: CallOverrides): Promise<BigNumber>;
        getCompoundedARTHDeposit(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCompoundedFrontEndStake(_frontEnd: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getDepositorETHGain(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getDepositorMAHAGain(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getETH(overrides?: CallOverrides): Promise<BigNumber>;
        getEntireSystemColl(overrides?: CallOverrides): Promise<BigNumber>;
        getEntireSystemDebt(overrides?: CallOverrides): Promise<BigNumber>;
        getFrontEndMAHAGain(_frontEnd: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getMaxBorrowingFee(overrides?: CallOverrides): Promise<BigNumber>;
        getPriceFeed(overrides?: CallOverrides): Promise<string>;
        getRedemptionFeeFloor(overrides?: CallOverrides): Promise<BigNumber>;
        getTotalARTHDeposits(overrides?: CallOverrides): Promise<BigNumber>;
        governance(overrides?: CallOverrides): Promise<string>;
        isOwner(overrides?: CallOverrides): Promise<boolean>;
        lastARTHLossError_Offset(overrides?: CallOverrides): Promise<BigNumber>;
        lastETHError_Offset(overrides?: CallOverrides): Promise<BigNumber>;
        lastMAHAError(overrides?: CallOverrides): Promise<BigNumber>;
        offset(_debtToOffset: PromiseOrValue<BigNumberish>, _collToAdd: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        owner(overrides?: CallOverrides): Promise<string>;
        provideToSP(_amount: PromiseOrValue<BigNumberish>, _frontEndTag: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        registerFrontEnd(_kickbackRate: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        setAddresses(_borrowerOperationsAddress: PromiseOrValue<string>, _troveManagerAddress: PromiseOrValue<string>, _activePoolAddress: PromiseOrValue<string>, _arthTokenAddress: PromiseOrValue<string>, _sortedTrovesAddress: PromiseOrValue<string>, _governanceAddress: PromiseOrValue<string>, _communityIssuanceAddress: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        sortedTroves(overrides?: CallOverrides): Promise<string>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        troveManager(overrides?: CallOverrides): Promise<string>;
        withdrawETHGainToTrove(_upperHint: PromiseOrValue<string>, _lowerHint: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        withdrawFromSP(_amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
    };
    filters: {
        'ARTHTokenAddressChanged(address)'(_newARTHTokenAddress?: null): ARTHTokenAddressChangedEventFilter;
        ARTHTokenAddressChanged(_newARTHTokenAddress?: null): ARTHTokenAddressChangedEventFilter;
        'ActivePoolAddressChanged(address)'(_newActivePoolAddress?: null): ActivePoolAddressChangedEventFilter;
        ActivePoolAddressChanged(_newActivePoolAddress?: null): ActivePoolAddressChangedEventFilter;
        'BorrowerOperationsAddressChanged(address)'(_newBorrowerOperationsAddress?: null): BorrowerOperationsAddressChangedEventFilter;
        BorrowerOperationsAddressChanged(_newBorrowerOperationsAddress?: null): BorrowerOperationsAddressChangedEventFilter;
        'CommunityIssuanceAddressChanged(address)'(_newCommunityIssuanceAddress?: null): CommunityIssuanceAddressChangedEventFilter;
        CommunityIssuanceAddressChanged(_newCommunityIssuanceAddress?: null): CommunityIssuanceAddressChangedEventFilter;
        'DefaultPoolAddressChanged(address)'(_newDefaultPoolAddress?: null): DefaultPoolAddressChangedEventFilter;
        DefaultPoolAddressChanged(_newDefaultPoolAddress?: null): DefaultPoolAddressChangedEventFilter;
        'DepositSnapshotUpdated(address,uint256,uint256,uint256)'(_depositor?: PromiseOrValue<string> | null, _P?: null, _S?: null, _G?: null): DepositSnapshotUpdatedEventFilter;
        DepositSnapshotUpdated(_depositor?: PromiseOrValue<string> | null, _P?: null, _S?: null, _G?: null): DepositSnapshotUpdatedEventFilter;
        'ETHGainWithdrawn(address,uint256,uint256)'(_depositor?: PromiseOrValue<string> | null, _ETH?: null, _ARTHLoss?: null): ETHGainWithdrawnEventFilter;
        ETHGainWithdrawn(_depositor?: PromiseOrValue<string> | null, _ETH?: null, _ARTHLoss?: null): ETHGainWithdrawnEventFilter;
        'EpochUpdated(uint128)'(_currentEpoch?: null): EpochUpdatedEventFilter;
        EpochUpdated(_currentEpoch?: null): EpochUpdatedEventFilter;
        'EtherSent(address,uint256)'(_to?: null, _amount?: null): EtherSentEventFilter;
        EtherSent(_to?: null, _amount?: null): EtherSentEventFilter;
        'FrontEndRegistered(address,uint256)'(_frontEnd?: PromiseOrValue<string> | null, _kickbackRate?: null): FrontEndRegisteredEventFilter;
        FrontEndRegistered(_frontEnd?: PromiseOrValue<string> | null, _kickbackRate?: null): FrontEndRegisteredEventFilter;
        'FrontEndSnapshotUpdated(address,uint256,uint256)'(_frontEnd?: PromiseOrValue<string> | null, _P?: null, _G?: null): FrontEndSnapshotUpdatedEventFilter;
        FrontEndSnapshotUpdated(_frontEnd?: PromiseOrValue<string> | null, _P?: null, _G?: null): FrontEndSnapshotUpdatedEventFilter;
        'FrontEndStakeChanged(address,uint256,address)'(_frontEnd?: PromiseOrValue<string> | null, _newFrontEndStake?: null, _depositor?: null): FrontEndStakeChangedEventFilter;
        FrontEndStakeChanged(_frontEnd?: PromiseOrValue<string> | null, _newFrontEndStake?: null, _depositor?: null): FrontEndStakeChangedEventFilter;
        'FrontEndTagSet(address,address)'(_depositor?: PromiseOrValue<string> | null, _frontEnd?: PromiseOrValue<string> | null): FrontEndTagSetEventFilter;
        FrontEndTagSet(_depositor?: PromiseOrValue<string> | null, _frontEnd?: PromiseOrValue<string> | null): FrontEndTagSetEventFilter;
        'G_Updated(uint256,uint128,uint128)'(_G?: null, _epoch?: null, _scale?: null): G_UpdatedEventFilter;
        G_Updated(_G?: null, _epoch?: null, _scale?: null): G_UpdatedEventFilter;
        'GovernanceAddressChanged(address)'(_newGovernanceAddress?: null): GovernanceAddressChangedEventFilter;
        GovernanceAddressChanged(_newGovernanceAddress?: null): GovernanceAddressChangedEventFilter;
        'MAHAPaidToDepositor(address,uint256)'(_depositor?: PromiseOrValue<string> | null, _MAHA?: null): MAHAPaidToDepositorEventFilter;
        MAHAPaidToDepositor(_depositor?: PromiseOrValue<string> | null, _MAHA?: null): MAHAPaidToDepositorEventFilter;
        'MAHAPaidToFrontEnd(address,uint256)'(_frontEnd?: PromiseOrValue<string> | null, _MAHA?: null): MAHAPaidToFrontEndEventFilter;
        MAHAPaidToFrontEnd(_frontEnd?: PromiseOrValue<string> | null, _MAHA?: null): MAHAPaidToFrontEndEventFilter;
        'OwnershipTransferred(address,address)'(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        OwnershipTransferred(previousOwner?: PromiseOrValue<string> | null, newOwner?: PromiseOrValue<string> | null): OwnershipTransferredEventFilter;
        'P_Updated(uint256)'(_P?: null): P_UpdatedEventFilter;
        P_Updated(_P?: null): P_UpdatedEventFilter;
        'S_Updated(uint256,uint128,uint128)'(_S?: null, _epoch?: null, _scale?: null): S_UpdatedEventFilter;
        S_Updated(_S?: null, _epoch?: null, _scale?: null): S_UpdatedEventFilter;
        'ScaleUpdated(uint128)'(_currentScale?: null): ScaleUpdatedEventFilter;
        ScaleUpdated(_currentScale?: null): ScaleUpdatedEventFilter;
        'SortedTrovesAddressChanged(address)'(_newSortedTrovesAddress?: null): SortedTrovesAddressChangedEventFilter;
        SortedTrovesAddressChanged(_newSortedTrovesAddress?: null): SortedTrovesAddressChangedEventFilter;
        'StabilityPoolARTHBalanceUpdated(uint256)'(_newBalance?: null): StabilityPoolARTHBalanceUpdatedEventFilter;
        StabilityPoolARTHBalanceUpdated(_newBalance?: null): StabilityPoolARTHBalanceUpdatedEventFilter;
        'StabilityPoolETHBalanceUpdated(uint256)'(_newBalance?: null): StabilityPoolETHBalanceUpdatedEventFilter;
        StabilityPoolETHBalanceUpdated(_newBalance?: null): StabilityPoolETHBalanceUpdatedEventFilter;
        'TroveManagerAddressChanged(address)'(_newTroveManagerAddress?: null): TroveManagerAddressChangedEventFilter;
        TroveManagerAddressChanged(_newTroveManagerAddress?: null): TroveManagerAddressChangedEventFilter;
        'UserDepositChanged(address,uint256)'(_depositor?: PromiseOrValue<string> | null, _newDeposit?: null): UserDepositChangedEventFilter;
        UserDepositChanged(_depositor?: PromiseOrValue<string> | null, _newDeposit?: null): UserDepositChangedEventFilter;
    };
    estimateGas: {
        ARTH_GAS_COMPENSATION(overrides?: CallOverrides): Promise<BigNumber>;
        CCR(overrides?: CallOverrides): Promise<BigNumber>;
        DECIMAL_PRECISION(overrides?: CallOverrides): Promise<BigNumber>;
        MCR(overrides?: CallOverrides): Promise<BigNumber>;
        MIN_NET_DEBT(overrides?: CallOverrides): Promise<BigNumber>;
        NAME(overrides?: CallOverrides): Promise<BigNumber>;
        P(overrides?: CallOverrides): Promise<BigNumber>;
        PERCENT_DIVISOR(overrides?: CallOverrides): Promise<BigNumber>;
        SCALE_FACTOR(overrides?: CallOverrides): Promise<BigNumber>;
        _100pct(overrides?: CallOverrides): Promise<BigNumber>;
        activePool(overrides?: CallOverrides): Promise<BigNumber>;
        arthToken(overrides?: CallOverrides): Promise<BigNumber>;
        borrowerOperations(overrides?: CallOverrides): Promise<BigNumber>;
        communityIssuance(overrides?: CallOverrides): Promise<BigNumber>;
        currentEpoch(overrides?: CallOverrides): Promise<BigNumber>;
        currentScale(overrides?: CallOverrides): Promise<BigNumber>;
        defaultPool(overrides?: CallOverrides): Promise<BigNumber>;
        depositSnapshots(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        deposits(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        epochToScaleToG(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        epochToScaleToSum(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        frontEndSnapshots(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        frontEndStakes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        frontEnds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getBorrowingFeeFloor(overrides?: CallOverrides): Promise<BigNumber>;
        getCompoundedARTHDeposit(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getCompoundedFrontEndStake(_frontEnd: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getDepositorETHGain(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getDepositorMAHAGain(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getETH(overrides?: CallOverrides): Promise<BigNumber>;
        getEntireSystemColl(overrides?: CallOverrides): Promise<BigNumber>;
        getEntireSystemDebt(overrides?: CallOverrides): Promise<BigNumber>;
        getFrontEndMAHAGain(_frontEnd: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        getMaxBorrowingFee(overrides?: CallOverrides): Promise<BigNumber>;
        getPriceFeed(overrides?: CallOverrides): Promise<BigNumber>;
        getRedemptionFeeFloor(overrides?: CallOverrides): Promise<BigNumber>;
        getTotalARTHDeposits(overrides?: CallOverrides): Promise<BigNumber>;
        governance(overrides?: CallOverrides): Promise<BigNumber>;
        isOwner(overrides?: CallOverrides): Promise<BigNumber>;
        lastARTHLossError_Offset(overrides?: CallOverrides): Promise<BigNumber>;
        lastETHError_Offset(overrides?: CallOverrides): Promise<BigNumber>;
        lastMAHAError(overrides?: CallOverrides): Promise<BigNumber>;
        offset(_debtToOffset: PromiseOrValue<BigNumberish>, _collToAdd: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        owner(overrides?: CallOverrides): Promise<BigNumber>;
        provideToSP(_amount: PromiseOrValue<BigNumberish>, _frontEndTag: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        registerFrontEnd(_kickbackRate: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        setAddresses(_borrowerOperationsAddress: PromiseOrValue<string>, _troveManagerAddress: PromiseOrValue<string>, _activePoolAddress: PromiseOrValue<string>, _arthTokenAddress: PromiseOrValue<string>, _sortedTrovesAddress: PromiseOrValue<string>, _governanceAddress: PromiseOrValue<string>, _communityIssuanceAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        sortedTroves(overrides?: CallOverrides): Promise<BigNumber>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        troveManager(overrides?: CallOverrides): Promise<BigNumber>;
        withdrawETHGainToTrove(_upperHint: PromiseOrValue<string>, _lowerHint: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        withdrawFromSP(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
    };
    populateTransaction: {
        ARTH_GAS_COMPENSATION(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        CCR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        DECIMAL_PRECISION(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MCR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        MIN_NET_DEBT(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        NAME(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        P(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        PERCENT_DIVISOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        SCALE_FACTOR(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        _100pct(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        activePool(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        arthToken(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        borrowerOperations(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        communityIssuance(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        currentEpoch(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        currentScale(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        defaultPool(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        depositSnapshots(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        deposits(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        epochToScaleToG(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        epochToScaleToSum(arg0: PromiseOrValue<BigNumberish>, arg1: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        frontEndSnapshots(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        frontEndStakes(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        frontEnds(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getBorrowingFeeFloor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCompoundedARTHDeposit(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getCompoundedFrontEndStake(_frontEnd: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getDepositorETHGain(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getDepositorMAHAGain(_depositor: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getETH(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getEntireSystemColl(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getEntireSystemDebt(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getFrontEndMAHAGain(_frontEnd: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getMaxBorrowingFee(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getPriceFeed(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getRedemptionFeeFloor(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        getTotalARTHDeposits(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        governance(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        isOwner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lastARTHLossError_Offset(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lastETHError_Offset(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        lastMAHAError(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        offset(_debtToOffset: PromiseOrValue<BigNumberish>, _collToAdd: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        provideToSP(_amount: PromiseOrValue<BigNumberish>, _frontEndTag: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        registerFrontEnd(_kickbackRate: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        setAddresses(_borrowerOperationsAddress: PromiseOrValue<string>, _troveManagerAddress: PromiseOrValue<string>, _activePoolAddress: PromiseOrValue<string>, _arthTokenAddress: PromiseOrValue<string>, _sortedTrovesAddress: PromiseOrValue<string>, _governanceAddress: PromiseOrValue<string>, _communityIssuanceAddress: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        sortedTroves(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferOwnership(newOwner: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        troveManager(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        withdrawETHGainToTrove(_upperHint: PromiseOrValue<string>, _lowerHint: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        withdrawFromSP(_amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
    };
}
