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 ICreditManagerV2Interface extends utils.Interface {
    functions: {
        "adapterToContract(address)": FunctionFragment;
        "addCollateral(address,address,address,uint256)": FunctionFragment;
        "approveCreditAccount(address,address,address,uint256)": FunctionFragment;
        "calcClosePayments(uint256,uint8,uint256,uint256)": FunctionFragment;
        "calcCreditAccountAccruedInterest(address)": FunctionFragment;
        "canLiquidateWhilePaused(address)": FunctionFragment;
        "checkAndEnableToken(address,address)": FunctionFragment;
        "checkAndOptimizeEnabledTokens(address)": FunctionFragment;
        "checkEmergencyPausable(address,bool)": FunctionFragment;
        "closeCreditAccount(address,uint8,uint256,address,address,uint256,bool)": FunctionFragment;
        "collateralTokens(uint256)": FunctionFragment;
        "collateralTokensByMask(uint256)": FunctionFragment;
        "collateralTokensCount()": FunctionFragment;
        "contractToAdapter(address)": FunctionFragment;
        "creditAccounts(address)": FunctionFragment;
        "creditConfigurator()": FunctionFragment;
        "creditFacade()": FunctionFragment;
        "cumulativeDropAtFastCheckRAY(address)": FunctionFragment;
        "disableToken(address,address)": FunctionFragment;
        "enabledTokensMap(address)": FunctionFragment;
        "executeOrder(address,address,bytes)": FunctionFragment;
        "fastCollateralCheck(address,address,address,uint256,uint256)": FunctionFragment;
        "fees()": FunctionFragment;
        "forbiddenTokenMask()": FunctionFragment;
        "fullCollateralCheck(address)": FunctionFragment;
        "getCreditAccountOrRevert(address)": FunctionFragment;
        "liquidationThresholds(address)": FunctionFragment;
        "manageDebt(address,uint256,bool)": FunctionFragment;
        "maxAllowedEnabledTokenLength()": FunctionFragment;
        "openCreditAccount(uint256,address)": FunctionFragment;
        "pool()": FunctionFragment;
        "poolService()": FunctionFragment;
        "priceOracle()": FunctionFragment;
        "tokenMasksMap(address)": FunctionFragment;
        "transferAccountOwnership(address,address)": FunctionFragment;
        "underlying()": FunctionFragment;
        "universalAdapter()": FunctionFragment;
        "version()": FunctionFragment;
        "wethAddress()": FunctionFragment;
    };
    getFunction(nameOrSignatureOrTopic: "adapterToContract" | "addCollateral" | "approveCreditAccount" | "calcClosePayments" | "calcCreditAccountAccruedInterest" | "canLiquidateWhilePaused" | "checkAndEnableToken" | "checkAndOptimizeEnabledTokens" | "checkEmergencyPausable" | "closeCreditAccount" | "collateralTokens" | "collateralTokensByMask" | "collateralTokensCount" | "contractToAdapter" | "creditAccounts" | "creditConfigurator" | "creditFacade" | "cumulativeDropAtFastCheckRAY" | "disableToken" | "enabledTokensMap" | "executeOrder" | "fastCollateralCheck" | "fees" | "forbiddenTokenMask" | "fullCollateralCheck" | "getCreditAccountOrRevert" | "liquidationThresholds" | "manageDebt" | "maxAllowedEnabledTokenLength" | "openCreditAccount" | "pool" | "poolService" | "priceOracle" | "tokenMasksMap" | "transferAccountOwnership" | "underlying" | "universalAdapter" | "version" | "wethAddress"): FunctionFragment;
    encodeFunctionData(functionFragment: "adapterToContract", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "addCollateral", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "approveCreditAccount", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "calcClosePayments", values: [
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "calcCreditAccountAccruedInterest", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "canLiquidateWhilePaused", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "checkAndEnableToken", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "checkAndOptimizeEnabledTokens", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "checkEmergencyPausable", values: [PromiseOrValue<string>, PromiseOrValue<boolean>]): string;
    encodeFunctionData(functionFragment: "closeCreditAccount", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<boolean>
    ]): string;
    encodeFunctionData(functionFragment: "collateralTokens", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "collateralTokensByMask", values: [PromiseOrValue<BigNumberish>]): string;
    encodeFunctionData(functionFragment: "collateralTokensCount", values?: undefined): string;
    encodeFunctionData(functionFragment: "contractToAdapter", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "creditAccounts", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "creditConfigurator", values?: undefined): string;
    encodeFunctionData(functionFragment: "creditFacade", values?: undefined): string;
    encodeFunctionData(functionFragment: "cumulativeDropAtFastCheckRAY", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "disableToken", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "enabledTokensMap", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "executeOrder", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BytesLike>
    ]): string;
    encodeFunctionData(functionFragment: "fastCollateralCheck", values: [
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<BigNumberish>
    ]): string;
    encodeFunctionData(functionFragment: "fees", values?: undefined): string;
    encodeFunctionData(functionFragment: "forbiddenTokenMask", values?: undefined): string;
    encodeFunctionData(functionFragment: "fullCollateralCheck", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "getCreditAccountOrRevert", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "liquidationThresholds", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "manageDebt", values: [
        PromiseOrValue<string>,
        PromiseOrValue<BigNumberish>,
        PromiseOrValue<boolean>
    ]): string;
    encodeFunctionData(functionFragment: "maxAllowedEnabledTokenLength", values?: undefined): string;
    encodeFunctionData(functionFragment: "openCreditAccount", values: [PromiseOrValue<BigNumberish>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "pool", values?: undefined): string;
    encodeFunctionData(functionFragment: "poolService", values?: undefined): string;
    encodeFunctionData(functionFragment: "priceOracle", values?: undefined): string;
    encodeFunctionData(functionFragment: "tokenMasksMap", values: [PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "transferAccountOwnership", values: [PromiseOrValue<string>, PromiseOrValue<string>]): string;
    encodeFunctionData(functionFragment: "underlying", values?: undefined): string;
    encodeFunctionData(functionFragment: "universalAdapter", values?: undefined): string;
    encodeFunctionData(functionFragment: "version", values?: undefined): string;
    encodeFunctionData(functionFragment: "wethAddress", values?: undefined): string;
    decodeFunctionResult(functionFragment: "adapterToContract", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "addCollateral", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "approveCreditAccount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "calcClosePayments", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "calcCreditAccountAccruedInterest", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "canLiquidateWhilePaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "checkAndEnableToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "checkAndOptimizeEnabledTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "checkEmergencyPausable", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "closeCreditAccount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "collateralTokens", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "collateralTokensByMask", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "collateralTokensCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "contractToAdapter", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "creditAccounts", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "creditConfigurator", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "creditFacade", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "cumulativeDropAtFastCheckRAY", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "disableToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "enabledTokensMap", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "executeOrder", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "fastCollateralCheck", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "fees", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "forbiddenTokenMask", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "fullCollateralCheck", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getCreditAccountOrRevert", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "liquidationThresholds", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "manageDebt", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "maxAllowedEnabledTokenLength", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "openCreditAccount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pool", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "poolService", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "priceOracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "tokenMasksMap", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferAccountOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "underlying", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "universalAdapter", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "wethAddress", data: BytesLike): Result;
    events: {
        "ExecuteOrder(address,address)": EventFragment;
        "NewConfigurator(address)": EventFragment;
    };
    getEvent(nameOrSignatureOrTopic: "ExecuteOrder"): EventFragment;
    getEvent(nameOrSignatureOrTopic: "NewConfigurator"): EventFragment;
}
export interface ExecuteOrderEventObject {
    borrower: string;
    target: string;
}
export type ExecuteOrderEvent = TypedEvent<[
    string,
    string
], ExecuteOrderEventObject>;
export type ExecuteOrderEventFilter = TypedEventFilter<ExecuteOrderEvent>;
export interface NewConfiguratorEventObject {
    newConfigurator: string;
}
export type NewConfiguratorEvent = TypedEvent<[
    string
], NewConfiguratorEventObject>;
export type NewConfiguratorEventFilter = TypedEventFilter<NewConfiguratorEvent>;
export interface ICreditManagerV2 extends BaseContract {
    connect(signerOrProvider: Signer | Provider | string): this;
    attach(addressOrName: string): this;
    deployed(): Promise<this>;
    interface: ICreditManagerV2Interface;
    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: {
        adapterToContract(adapter: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        addCollateral(payer: PromiseOrValue<string>, creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        approveCreditAccount(borrower: PromiseOrValue<string>, targetContract: PromiseOrValue<string>, token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        calcClosePayments(totalValue: PromiseOrValue<BigNumberish>, closureActionType: PromiseOrValue<BigNumberish>, borrowedAmount: PromiseOrValue<BigNumberish>, borrowedAmountWithInterest: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            amountToPool: BigNumber;
            remainingFunds: BigNumber;
            profit: BigNumber;
            loss: BigNumber;
        }>;
        calcCreditAccountAccruedInterest(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            borrowedAmount: BigNumber;
            borrowedAmountWithInterest: BigNumber;
            borrowedAmountWithInterestAndFees: BigNumber;
        }>;
        canLiquidateWhilePaused(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[boolean]>;
        checkAndEnableToken(creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        checkAndOptimizeEnabledTokens(creditAccount: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        checkEmergencyPausable(caller: PromiseOrValue<string>, state: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        closeCreditAccount(borrower: PromiseOrValue<string>, closureActionType: PromiseOrValue<BigNumberish>, totalValue: PromiseOrValue<BigNumberish>, payer: PromiseOrValue<string>, to: PromiseOrValue<string>, skipTokenMask: PromiseOrValue<BigNumberish>, convertWETH: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        collateralTokens(id: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            number
        ] & {
            token: string;
            liquidationThreshold: number;
        }>;
        collateralTokensByMask(tokenMask: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            number
        ] & {
            token: string;
            liquidationThreshold: number;
        }>;
        collateralTokensCount(overrides?: CallOverrides): Promise<[BigNumber]>;
        contractToAdapter(targetContract: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        creditAccounts(borrower: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        creditConfigurator(overrides?: CallOverrides): Promise<[string]>;
        creditFacade(overrides?: CallOverrides): Promise<[string]>;
        cumulativeDropAtFastCheckRAY(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        disableToken(creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        enabledTokensMap(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        executeOrder(borrower: PromiseOrValue<string>, targetContract: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        fastCollateralCheck(creditAccount: PromiseOrValue<string>, tokenIn: PromiseOrValue<string>, tokenOut: PromiseOrValue<string>, balanceInBefore: PromiseOrValue<BigNumberish>, balanceOutBefore: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        fees(overrides?: CallOverrides): Promise<[
            number,
            number,
            number,
            number,
            number
        ] & {
            feeInterest: number;
            feeLiquidation: number;
            liquidationDiscount: number;
            feeLiquidationExpired: number;
            liquidationDiscountExpired: number;
        }>;
        forbiddenTokenMask(overrides?: CallOverrides): Promise<[BigNumber]>;
        fullCollateralCheck(creditAccount: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        getCreditAccountOrRevert(borrower: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[string]>;
        liquidationThresholds(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[number]>;
        manageDebt(creditAccount: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, increase: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        maxAllowedEnabledTokenLength(overrides?: CallOverrides): Promise<[number]>;
        openCreditAccount(borrowedAmount: PromiseOrValue<BigNumberish>, onBehalfOf: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        pool(overrides?: CallOverrides): Promise<[string]>;
        poolService(overrides?: CallOverrides): Promise<[string]>;
        priceOracle(overrides?: CallOverrides): Promise<[string]>;
        tokenMasksMap(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[BigNumber]>;
        transferAccountOwnership(from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<ContractTransaction>;
        underlying(overrides?: CallOverrides): Promise<[string]>;
        universalAdapter(overrides?: CallOverrides): Promise<[string]>;
        version(overrides?: CallOverrides): Promise<[BigNumber]>;
        wethAddress(overrides?: CallOverrides): Promise<[string]>;
    };
    adapterToContract(adapter: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    addCollateral(payer: PromiseOrValue<string>, creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    approveCreditAccount(borrower: PromiseOrValue<string>, targetContract: PromiseOrValue<string>, token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    calcClosePayments(totalValue: PromiseOrValue<BigNumberish>, closureActionType: PromiseOrValue<BigNumberish>, borrowedAmount: PromiseOrValue<BigNumberish>, borrowedAmountWithInterest: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        amountToPool: BigNumber;
        remainingFunds: BigNumber;
        profit: BigNumber;
        loss: BigNumber;
    }>;
    calcCreditAccountAccruedInterest(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
        BigNumber,
        BigNumber,
        BigNumber
    ] & {
        borrowedAmount: BigNumber;
        borrowedAmountWithInterest: BigNumber;
        borrowedAmountWithInterestAndFees: BigNumber;
    }>;
    canLiquidateWhilePaused(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
    checkAndEnableToken(creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    checkAndOptimizeEnabledTokens(creditAccount: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    checkEmergencyPausable(caller: PromiseOrValue<string>, state: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    closeCreditAccount(borrower: PromiseOrValue<string>, closureActionType: PromiseOrValue<BigNumberish>, totalValue: PromiseOrValue<BigNumberish>, payer: PromiseOrValue<string>, to: PromiseOrValue<string>, skipTokenMask: PromiseOrValue<BigNumberish>, convertWETH: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    collateralTokens(id: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        string,
        number
    ] & {
        token: string;
        liquidationThreshold: number;
    }>;
    collateralTokensByMask(tokenMask: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
        string,
        number
    ] & {
        token: string;
        liquidationThreshold: number;
    }>;
    collateralTokensCount(overrides?: CallOverrides): Promise<BigNumber>;
    contractToAdapter(targetContract: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    creditAccounts(borrower: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    creditConfigurator(overrides?: CallOverrides): Promise<string>;
    creditFacade(overrides?: CallOverrides): Promise<string>;
    cumulativeDropAtFastCheckRAY(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    disableToken(creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    enabledTokensMap(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    executeOrder(borrower: PromiseOrValue<string>, targetContract: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    fastCollateralCheck(creditAccount: PromiseOrValue<string>, tokenIn: PromiseOrValue<string>, tokenOut: PromiseOrValue<string>, balanceInBefore: PromiseOrValue<BigNumberish>, balanceOutBefore: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    fees(overrides?: CallOverrides): Promise<[
        number,
        number,
        number,
        number,
        number
    ] & {
        feeInterest: number;
        feeLiquidation: number;
        liquidationDiscount: number;
        feeLiquidationExpired: number;
        liquidationDiscountExpired: number;
    }>;
    forbiddenTokenMask(overrides?: CallOverrides): Promise<BigNumber>;
    fullCollateralCheck(creditAccount: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    getCreditAccountOrRevert(borrower: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
    liquidationThresholds(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<number>;
    manageDebt(creditAccount: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, increase: PromiseOrValue<boolean>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    maxAllowedEnabledTokenLength(overrides?: CallOverrides): Promise<number>;
    openCreditAccount(borrowedAmount: PromiseOrValue<BigNumberish>, onBehalfOf: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    pool(overrides?: CallOverrides): Promise<string>;
    poolService(overrides?: CallOverrides): Promise<string>;
    priceOracle(overrides?: CallOverrides): Promise<string>;
    tokenMasksMap(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
    transferAccountOwnership(from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: Overrides & {
        from?: PromiseOrValue<string>;
    }): Promise<ContractTransaction>;
    underlying(overrides?: CallOverrides): Promise<string>;
    universalAdapter(overrides?: CallOverrides): Promise<string>;
    version(overrides?: CallOverrides): Promise<BigNumber>;
    wethAddress(overrides?: CallOverrides): Promise<string>;
    callStatic: {
        adapterToContract(adapter: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        addCollateral(payer: PromiseOrValue<string>, creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        approveCreditAccount(borrower: PromiseOrValue<string>, targetContract: PromiseOrValue<string>, token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        calcClosePayments(totalValue: PromiseOrValue<BigNumberish>, closureActionType: PromiseOrValue<BigNumberish>, borrowedAmount: PromiseOrValue<BigNumberish>, borrowedAmountWithInterest: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            amountToPool: BigNumber;
            remainingFunds: BigNumber;
            profit: BigNumber;
            loss: BigNumber;
        }>;
        calcCreditAccountAccruedInterest(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<[
            BigNumber,
            BigNumber,
            BigNumber
        ] & {
            borrowedAmount: BigNumber;
            borrowedAmountWithInterest: BigNumber;
            borrowedAmountWithInterestAndFees: BigNumber;
        }>;
        canLiquidateWhilePaused(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        checkAndEnableToken(creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        checkAndOptimizeEnabledTokens(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        checkEmergencyPausable(caller: PromiseOrValue<string>, state: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<boolean>;
        closeCreditAccount(borrower: PromiseOrValue<string>, closureActionType: PromiseOrValue<BigNumberish>, totalValue: PromiseOrValue<BigNumberish>, payer: PromiseOrValue<string>, to: PromiseOrValue<string>, skipTokenMask: PromiseOrValue<BigNumberish>, convertWETH: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<BigNumber>;
        collateralTokens(id: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            number
        ] & {
            token: string;
            liquidationThreshold: number;
        }>;
        collateralTokensByMask(tokenMask: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<[
            string,
            number
        ] & {
            token: string;
            liquidationThreshold: number;
        }>;
        collateralTokensCount(overrides?: CallOverrides): Promise<BigNumber>;
        contractToAdapter(targetContract: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        creditAccounts(borrower: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        creditConfigurator(overrides?: CallOverrides): Promise<string>;
        creditFacade(overrides?: CallOverrides): Promise<string>;
        cumulativeDropAtFastCheckRAY(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        disableToken(creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<boolean>;
        enabledTokensMap(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        executeOrder(borrower: PromiseOrValue<string>, targetContract: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: CallOverrides): Promise<string>;
        fastCollateralCheck(creditAccount: PromiseOrValue<string>, tokenIn: PromiseOrValue<string>, tokenOut: PromiseOrValue<string>, balanceInBefore: PromiseOrValue<BigNumberish>, balanceOutBefore: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<void>;
        fees(overrides?: CallOverrides): Promise<[
            number,
            number,
            number,
            number,
            number
        ] & {
            feeInterest: number;
            feeLiquidation: number;
            liquidationDiscount: number;
            feeLiquidationExpired: number;
            liquidationDiscountExpired: number;
        }>;
        forbiddenTokenMask(overrides?: CallOverrides): Promise<BigNumber>;
        fullCollateralCheck(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        getCreditAccountOrRevert(borrower: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        liquidationThresholds(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<number>;
        manageDebt(creditAccount: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, increase: PromiseOrValue<boolean>, overrides?: CallOverrides): Promise<BigNumber>;
        maxAllowedEnabledTokenLength(overrides?: CallOverrides): Promise<number>;
        openCreditAccount(borrowedAmount: PromiseOrValue<BigNumberish>, onBehalfOf: PromiseOrValue<string>, overrides?: CallOverrides): Promise<string>;
        pool(overrides?: CallOverrides): Promise<string>;
        poolService(overrides?: CallOverrides): Promise<string>;
        priceOracle(overrides?: CallOverrides): Promise<string>;
        tokenMasksMap(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        transferAccountOwnership(from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: CallOverrides): Promise<void>;
        underlying(overrides?: CallOverrides): Promise<string>;
        universalAdapter(overrides?: CallOverrides): Promise<string>;
        version(overrides?: CallOverrides): Promise<BigNumber>;
        wethAddress(overrides?: CallOverrides): Promise<string>;
    };
    filters: {
        "ExecuteOrder(address,address)"(borrower?: PromiseOrValue<string> | null, target?: PromiseOrValue<string> | null): ExecuteOrderEventFilter;
        ExecuteOrder(borrower?: PromiseOrValue<string> | null, target?: PromiseOrValue<string> | null): ExecuteOrderEventFilter;
        "NewConfigurator(address)"(newConfigurator?: PromiseOrValue<string> | null): NewConfiguratorEventFilter;
        NewConfigurator(newConfigurator?: PromiseOrValue<string> | null): NewConfiguratorEventFilter;
    };
    estimateGas: {
        adapterToContract(adapter: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        addCollateral(payer: PromiseOrValue<string>, creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        approveCreditAccount(borrower: PromiseOrValue<string>, targetContract: PromiseOrValue<string>, token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        calcClosePayments(totalValue: PromiseOrValue<BigNumberish>, closureActionType: PromiseOrValue<BigNumberish>, borrowedAmount: PromiseOrValue<BigNumberish>, borrowedAmountWithInterest: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        calcCreditAccountAccruedInterest(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        canLiquidateWhilePaused(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        checkAndEnableToken(creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        checkAndOptimizeEnabledTokens(creditAccount: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        checkEmergencyPausable(caller: PromiseOrValue<string>, state: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        closeCreditAccount(borrower: PromiseOrValue<string>, closureActionType: PromiseOrValue<BigNumberish>, totalValue: PromiseOrValue<BigNumberish>, payer: PromiseOrValue<string>, to: PromiseOrValue<string>, skipTokenMask: PromiseOrValue<BigNumberish>, convertWETH: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        collateralTokens(id: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        collateralTokensByMask(tokenMask: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<BigNumber>;
        collateralTokensCount(overrides?: CallOverrides): Promise<BigNumber>;
        contractToAdapter(targetContract: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        creditAccounts(borrower: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        creditConfigurator(overrides?: CallOverrides): Promise<BigNumber>;
        creditFacade(overrides?: CallOverrides): Promise<BigNumber>;
        cumulativeDropAtFastCheckRAY(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        disableToken(creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        enabledTokensMap(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        executeOrder(borrower: PromiseOrValue<string>, targetContract: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        fastCollateralCheck(creditAccount: PromiseOrValue<string>, tokenIn: PromiseOrValue<string>, tokenOut: PromiseOrValue<string>, balanceInBefore: PromiseOrValue<BigNumberish>, balanceOutBefore: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        fees(overrides?: CallOverrides): Promise<BigNumber>;
        forbiddenTokenMask(overrides?: CallOverrides): Promise<BigNumber>;
        fullCollateralCheck(creditAccount: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        getCreditAccountOrRevert(borrower: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        liquidationThresholds(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        manageDebt(creditAccount: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, increase: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        maxAllowedEnabledTokenLength(overrides?: CallOverrides): Promise<BigNumber>;
        openCreditAccount(borrowedAmount: PromiseOrValue<BigNumberish>, onBehalfOf: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        pool(overrides?: CallOverrides): Promise<BigNumber>;
        poolService(overrides?: CallOverrides): Promise<BigNumber>;
        priceOracle(overrides?: CallOverrides): Promise<BigNumber>;
        tokenMasksMap(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<BigNumber>;
        transferAccountOwnership(from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<BigNumber>;
        underlying(overrides?: CallOverrides): Promise<BigNumber>;
        universalAdapter(overrides?: CallOverrides): Promise<BigNumber>;
        version(overrides?: CallOverrides): Promise<BigNumber>;
        wethAddress(overrides?: CallOverrides): Promise<BigNumber>;
    };
    populateTransaction: {
        adapterToContract(adapter: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        addCollateral(payer: PromiseOrValue<string>, creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        approveCreditAccount(borrower: PromiseOrValue<string>, targetContract: PromiseOrValue<string>, token: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        calcClosePayments(totalValue: PromiseOrValue<BigNumberish>, closureActionType: PromiseOrValue<BigNumberish>, borrowedAmount: PromiseOrValue<BigNumberish>, borrowedAmountWithInterest: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        calcCreditAccountAccruedInterest(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        canLiquidateWhilePaused(arg0: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        checkAndEnableToken(creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        checkAndOptimizeEnabledTokens(creditAccount: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        checkEmergencyPausable(caller: PromiseOrValue<string>, state: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        closeCreditAccount(borrower: PromiseOrValue<string>, closureActionType: PromiseOrValue<BigNumberish>, totalValue: PromiseOrValue<BigNumberish>, payer: PromiseOrValue<string>, to: PromiseOrValue<string>, skipTokenMask: PromiseOrValue<BigNumberish>, convertWETH: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        collateralTokens(id: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        collateralTokensByMask(tokenMask: PromiseOrValue<BigNumberish>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        collateralTokensCount(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        contractToAdapter(targetContract: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        creditAccounts(borrower: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        creditConfigurator(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        creditFacade(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        cumulativeDropAtFastCheckRAY(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        disableToken(creditAccount: PromiseOrValue<string>, token: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        enabledTokensMap(creditAccount: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        executeOrder(borrower: PromiseOrValue<string>, targetContract: PromiseOrValue<string>, data: PromiseOrValue<BytesLike>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        fastCollateralCheck(creditAccount: PromiseOrValue<string>, tokenIn: PromiseOrValue<string>, tokenOut: PromiseOrValue<string>, balanceInBefore: PromiseOrValue<BigNumberish>, balanceOutBefore: PromiseOrValue<BigNumberish>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        fees(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        forbiddenTokenMask(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        fullCollateralCheck(creditAccount: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        getCreditAccountOrRevert(borrower: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        liquidationThresholds(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        manageDebt(creditAccount: PromiseOrValue<string>, amount: PromiseOrValue<BigNumberish>, increase: PromiseOrValue<boolean>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        maxAllowedEnabledTokenLength(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        openCreditAccount(borrowedAmount: PromiseOrValue<BigNumberish>, onBehalfOf: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        pool(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        poolService(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        priceOracle(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        tokenMasksMap(token: PromiseOrValue<string>, overrides?: CallOverrides): Promise<PopulatedTransaction>;
        transferAccountOwnership(from: PromiseOrValue<string>, to: PromiseOrValue<string>, overrides?: Overrides & {
            from?: PromiseOrValue<string>;
        }): Promise<PopulatedTransaction>;
        underlying(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        universalAdapter(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        version(overrides?: CallOverrides): Promise<PopulatedTransaction>;
        wethAddress(overrides?: CallOverrides): Promise<PopulatedTransaction>;
    };
}
