import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common";
export declare namespace IVault {
    type RateInfoStruct = {
        rate: BigNumberish;
        accumulatedRate: BigNumberish;
        lastUpdateTime: BigNumberish;
    };
    type RateInfoStructOutput = [
        rate: bigint,
        accumulatedRate: bigint,
        lastUpdateTime: bigint
    ] & {
        rate: bigint;
        accumulatedRate: bigint;
        lastUpdateTime: bigint;
    };
}
export interface VaultInterface extends Interface {
    getFunction(nameOrSignature: "CURRENCY_TOKEN" | "baseRateInfo" | "burnCurrency" | "cancelOwnershipHandover" | "collateralMapping" | "completeOwnershipHandover" | "createCollateralType" | "debt" | "debtCeiling" | "deny" | "depositCollateral" | "feedModule" | "liquidate" | "mintCurrency" | "owner" | "ownershipHandoverExpiresAt" | "paidFees" | "pause" | "rateModule" | "recoverToken" | "rely" | "relyMapping" | "renounceOwnership" | "requestOwnershipHandover" | "stabilityModule" | "status" | "transferOwnership" | "unpause" | "updateBaseRate" | "updateCollateralData" | "updateDebtCeiling" | "updateFeedModule" | "updatePrice" | "updateRateModule" | "updateStabilityModule" | "vaultMapping" | "withdrawCollateral" | "withdrawFees"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "CollateralDeposited" | "CollateralTypeAdded" | "CollateralWithdrawn" | "CurrencyBurned" | "CurrencyMinted" | "FeesPaid" | "Liquidated" | "OwnershipHandoverCanceled" | "OwnershipHandoverRequested" | "OwnershipTransferred"): EventFragment;
    encodeFunctionData(functionFragment: "CURRENCY_TOKEN", values?: undefined): string;
    encodeFunctionData(functionFragment: "baseRateInfo", values?: undefined): string;
    encodeFunctionData(functionFragment: "burnCurrency", values: [AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "cancelOwnershipHandover", values?: undefined): string;
    encodeFunctionData(functionFragment: "collateralMapping", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "completeOwnershipHandover", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "createCollateralType", values: [
        AddressLike,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "debt", values?: undefined): string;
    encodeFunctionData(functionFragment: "debtCeiling", values?: undefined): string;
    encodeFunctionData(functionFragment: "deny", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "depositCollateral", values: [AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "feedModule", values?: undefined): string;
    encodeFunctionData(functionFragment: "liquidate", values: [AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "mintCurrency", values: [AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "owner", values?: undefined): string;
    encodeFunctionData(functionFragment: "ownershipHandoverExpiresAt", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "paidFees", values?: undefined): string;
    encodeFunctionData(functionFragment: "pause", values?: undefined): string;
    encodeFunctionData(functionFragment: "rateModule", values?: undefined): string;
    encodeFunctionData(functionFragment: "recoverToken", values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "rely", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "relyMapping", values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
    encodeFunctionData(functionFragment: "requestOwnershipHandover", values?: undefined): string;
    encodeFunctionData(functionFragment: "stabilityModule", values?: undefined): string;
    encodeFunctionData(functionFragment: "status", values?: undefined): string;
    encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "unpause", values?: undefined): string;
    encodeFunctionData(functionFragment: "updateBaseRate", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "updateCollateralData", values: [AddressLike, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "updateDebtCeiling", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "updateFeedModule", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "updatePrice", values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "updateRateModule", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "updateStabilityModule", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "vaultMapping", values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "withdrawCollateral", values: [AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "withdrawFees", values?: undefined): string;
    decodeFunctionResult(functionFragment: "CURRENCY_TOKEN", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "baseRateInfo", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "burnCurrency", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "cancelOwnershipHandover", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "collateralMapping", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "completeOwnershipHandover", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "createCollateralType", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "debt", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "debtCeiling", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "deny", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "depositCollateral", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "feedModule", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "liquidate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintCurrency", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "ownershipHandoverExpiresAt", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "paidFees", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rateModule", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "recoverToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "rely", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "relyMapping", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "requestOwnershipHandover", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "stabilityModule", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "status", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateBaseRate", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateCollateralData", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateDebtCeiling", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateFeedModule", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updatePrice", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateRateModule", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "updateStabilityModule", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "vaultMapping", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawCollateral", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "withdrawFees", data: BytesLike): Result;
}
export declare namespace CollateralDepositedEvent {
    type InputTuple = [owner: AddressLike, amount: BigNumberish];
    type OutputTuple = [owner: string, amount: bigint];
    interface OutputObject {
        owner: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace CollateralTypeAddedEvent {
    type InputTuple = [collateralAddress: AddressLike];
    type OutputTuple = [collateralAddress: string];
    interface OutputObject {
        collateralAddress: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace CollateralWithdrawnEvent {
    type InputTuple = [
        owner: AddressLike,
        to: AddressLike,
        amount: BigNumberish
    ];
    type OutputTuple = [owner: string, to: string, amount: bigint];
    interface OutputObject {
        owner: string;
        to: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace CurrencyBurnedEvent {
    type InputTuple = [owner: AddressLike, amount: BigNumberish];
    type OutputTuple = [owner: string, amount: bigint];
    interface OutputObject {
        owner: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace CurrencyMintedEvent {
    type InputTuple = [owner: AddressLike, amount: BigNumberish];
    type OutputTuple = [owner: string, amount: bigint];
    interface OutputObject {
        owner: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace FeesPaidEvent {
    type InputTuple = [owner: AddressLike, amount: BigNumberish];
    type OutputTuple = [owner: string, amount: bigint];
    interface OutputObject {
        owner: string;
        amount: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace LiquidatedEvent {
    type InputTuple = [
        owner: AddressLike,
        liquidator: AddressLike,
        currencyAmountPaid: BigNumberish,
        collateralAmountCovered: BigNumberish
    ];
    type OutputTuple = [
        owner: string,
        liquidator: string,
        currencyAmountPaid: bigint,
        collateralAmountCovered: bigint
    ];
    interface OutputObject {
        owner: string;
        liquidator: string;
        currencyAmountPaid: bigint;
        collateralAmountCovered: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OwnershipHandoverCanceledEvent {
    type InputTuple = [pendingOwner: AddressLike];
    type OutputTuple = [pendingOwner: string];
    interface OutputObject {
        pendingOwner: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OwnershipHandoverRequestedEvent {
    type InputTuple = [pendingOwner: AddressLike];
    type OutputTuple = [pendingOwner: string];
    interface OutputObject {
        pendingOwner: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OwnershipTransferredEvent {
    type InputTuple = [oldOwner: AddressLike, newOwner: AddressLike];
    type OutputTuple = [oldOwner: string, newOwner: string];
    interface OutputObject {
        oldOwner: string;
        newOwner: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface Vault extends BaseContract {
    connect(runner?: ContractRunner | null): Vault;
    waitForDeployment(): Promise<this>;
    interface: VaultInterface;
    queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
    on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
    once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
    listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
    listeners(eventName?: string): Promise<Array<Listener>>;
    removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
    CURRENCY_TOKEN: TypedContractMethod<[], [string], "view">;
    baseRateInfo: TypedContractMethod<[
    ], [
        [
            bigint,
            bigint,
            bigint
        ] & {
            rate: bigint;
            accumulatedRate: bigint;
            lastUpdateTime: bigint;
        }
    ], "view">;
    burnCurrency: TypedContractMethod<[
        _collateralToken: AddressLike,
        _owner: AddressLike,
        _amount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    cancelOwnershipHandover: TypedContractMethod<[], [void], "payable">;
    collateralMapping: TypedContractMethod<[
        arg0: AddressLike
    ], [
        [
            bigint,
            bigint,
            bigint,
            bigint,
            IVault.RateInfoStructOutput,
            bigint,
            bigint,
            bigint,
            bigint
        ] & {
            totalDepositedCollateral: bigint;
            totalBorrowedAmount: bigint;
            liquidationThreshold: bigint;
            liquidationBonus: bigint;
            rateInfo: IVault.RateInfoStructOutput;
            price: bigint;
            debtCeiling: bigint;
            collateralFloorPerPosition: bigint;
            additionalCollateralPrecision: bigint;
        }
    ], "view">;
    completeOwnershipHandover: TypedContractMethod<[
        pendingOwner: AddressLike
    ], [
        void
    ], "payable">;
    createCollateralType: TypedContractMethod<[
        _collateralToken: AddressLike,
        _rate: BigNumberish,
        _liquidationThreshold: BigNumberish,
        _liquidationBonus: BigNumberish,
        _debtCeiling: BigNumberish,
        _collateralFloorPerPosition: BigNumberish
    ], [
        void
    ], "nonpayable">;
    debt: TypedContractMethod<[], [bigint], "view">;
    debtCeiling: TypedContractMethod<[], [bigint], "view">;
    deny: TypedContractMethod<[_reliedUpon: AddressLike], [void], "nonpayable">;
    depositCollateral: TypedContractMethod<[
        _collateralToken: AddressLike,
        _owner: AddressLike,
        _amount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    feedModule: TypedContractMethod<[], [string], "view">;
    liquidate: TypedContractMethod<[
        _collateralToken: AddressLike,
        _owner: AddressLike,
        _to: AddressLike,
        _currencyAmountToPay: BigNumberish
    ], [
        void
    ], "nonpayable">;
    mintCurrency: TypedContractMethod<[
        _collateralToken: AddressLike,
        _owner: AddressLike,
        _to: AddressLike,
        _amount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    owner: TypedContractMethod<[], [string], "view">;
    ownershipHandoverExpiresAt: TypedContractMethod<[
        pendingOwner: AddressLike
    ], [
        bigint
    ], "view">;
    paidFees: TypedContractMethod<[], [bigint], "view">;
    pause: TypedContractMethod<[], [void], "nonpayable">;
    rateModule: TypedContractMethod<[], [string], "view">;
    recoverToken: TypedContractMethod<[
        _tokenAddress: AddressLike,
        _to: AddressLike
    ], [
        void
    ], "nonpayable">;
    rely: TypedContractMethod<[_relyUpon: AddressLike], [void], "nonpayable">;
    relyMapping: TypedContractMethod<[
        arg0: AddressLike,
        arg1: AddressLike
    ], [
        boolean
    ], "view">;
    renounceOwnership: TypedContractMethod<[], [void], "payable">;
    requestOwnershipHandover: TypedContractMethod<[], [void], "payable">;
    stabilityModule: TypedContractMethod<[], [string], "view">;
    status: TypedContractMethod<[], [bigint], "view">;
    transferOwnership: TypedContractMethod<[
        newOwner: AddressLike
    ], [
        void
    ], "payable">;
    unpause: TypedContractMethod<[], [void], "nonpayable">;
    updateBaseRate: TypedContractMethod<[
        _baseRate: BigNumberish
    ], [
        void
    ], "nonpayable">;
    updateCollateralData: TypedContractMethod<[
        _collateralToken: AddressLike,
        _param: BigNumberish,
        _data: BigNumberish
    ], [
        void
    ], "nonpayable">;
    updateDebtCeiling: TypedContractMethod<[
        _debtCeiling: BigNumberish
    ], [
        void
    ], "nonpayable">;
    updateFeedModule: TypedContractMethod<[
        _feedModule: AddressLike
    ], [
        void
    ], "nonpayable">;
    updatePrice: TypedContractMethod<[
        _collateralAddress: AddressLike,
        _price: BigNumberish
    ], [
        void
    ], "nonpayable">;
    updateRateModule: TypedContractMethod<[
        _rateModule: AddressLike
    ], [
        void
    ], "nonpayable">;
    updateStabilityModule: TypedContractMethod<[
        _stabilityModule: AddressLike
    ], [
        void
    ], "nonpayable">;
    vaultMapping: TypedContractMethod<[
        arg0: AddressLike,
        arg1: AddressLike
    ], [
        [
            bigint,
            bigint,
            bigint,
            bigint
        ] & {
            depositedCollateral: bigint;
            borrowedAmount: bigint;
            accruedFees: bigint;
            lastTotalAccumulatedRate: bigint;
        }
    ], "view">;
    withdrawCollateral: TypedContractMethod<[
        _collateralToken: AddressLike,
        _owner: AddressLike,
        _to: AddressLike,
        _amount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    withdrawFees: TypedContractMethod<[], [void], "nonpayable">;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: "CURRENCY_TOKEN"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "baseRateInfo"): TypedContractMethod<[
    ], [
        [
            bigint,
            bigint,
            bigint
        ] & {
            rate: bigint;
            accumulatedRate: bigint;
            lastUpdateTime: bigint;
        }
    ], "view">;
    getFunction(nameOrSignature: "burnCurrency"): TypedContractMethod<[
        _collateralToken: AddressLike,
        _owner: AddressLike,
        _amount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "cancelOwnershipHandover"): TypedContractMethod<[], [void], "payable">;
    getFunction(nameOrSignature: "collateralMapping"): TypedContractMethod<[
        arg0: AddressLike
    ], [
        [
            bigint,
            bigint,
            bigint,
            bigint,
            IVault.RateInfoStructOutput,
            bigint,
            bigint,
            bigint,
            bigint
        ] & {
            totalDepositedCollateral: bigint;
            totalBorrowedAmount: bigint;
            liquidationThreshold: bigint;
            liquidationBonus: bigint;
            rateInfo: IVault.RateInfoStructOutput;
            price: bigint;
            debtCeiling: bigint;
            collateralFloorPerPosition: bigint;
            additionalCollateralPrecision: bigint;
        }
    ], "view">;
    getFunction(nameOrSignature: "completeOwnershipHandover"): TypedContractMethod<[pendingOwner: AddressLike], [void], "payable">;
    getFunction(nameOrSignature: "createCollateralType"): TypedContractMethod<[
        _collateralToken: AddressLike,
        _rate: BigNumberish,
        _liquidationThreshold: BigNumberish,
        _liquidationBonus: BigNumberish,
        _debtCeiling: BigNumberish,
        _collateralFloorPerPosition: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "debt"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "debtCeiling"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "deny"): TypedContractMethod<[_reliedUpon: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "depositCollateral"): TypedContractMethod<[
        _collateralToken: AddressLike,
        _owner: AddressLike,
        _amount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "feedModule"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "liquidate"): TypedContractMethod<[
        _collateralToken: AddressLike,
        _owner: AddressLike,
        _to: AddressLike,
        _currencyAmountToPay: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "mintCurrency"): TypedContractMethod<[
        _collateralToken: AddressLike,
        _owner: AddressLike,
        _to: AddressLike,
        _amount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "ownershipHandoverExpiresAt"): TypedContractMethod<[pendingOwner: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "paidFees"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "pause"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "rateModule"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "recoverToken"): TypedContractMethod<[
        _tokenAddress: AddressLike,
        _to: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "rely"): TypedContractMethod<[_relyUpon: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "relyMapping"): TypedContractMethod<[
        arg0: AddressLike,
        arg1: AddressLike
    ], [
        boolean
    ], "view">;
    getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "payable">;
    getFunction(nameOrSignature: "requestOwnershipHandover"): TypedContractMethod<[], [void], "payable">;
    getFunction(nameOrSignature: "stabilityModule"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "status"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "payable">;
    getFunction(nameOrSignature: "unpause"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "updateBaseRate"): TypedContractMethod<[_baseRate: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "updateCollateralData"): TypedContractMethod<[
        _collateralToken: AddressLike,
        _param: BigNumberish,
        _data: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "updateDebtCeiling"): TypedContractMethod<[_debtCeiling: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "updateFeedModule"): TypedContractMethod<[_feedModule: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "updatePrice"): TypedContractMethod<[
        _collateralAddress: AddressLike,
        _price: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "updateRateModule"): TypedContractMethod<[_rateModule: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "updateStabilityModule"): TypedContractMethod<[_stabilityModule: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "vaultMapping"): TypedContractMethod<[
        arg0: AddressLike,
        arg1: AddressLike
    ], [
        [
            bigint,
            bigint,
            bigint,
            bigint
        ] & {
            depositedCollateral: bigint;
            borrowedAmount: bigint;
            accruedFees: bigint;
            lastTotalAccumulatedRate: bigint;
        }
    ], "view">;
    getFunction(nameOrSignature: "withdrawCollateral"): TypedContractMethod<[
        _collateralToken: AddressLike,
        _owner: AddressLike,
        _to: AddressLike,
        _amount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "withdrawFees"): TypedContractMethod<[], [void], "nonpayable">;
    getEvent(key: "CollateralDeposited"): TypedContractEvent<CollateralDepositedEvent.InputTuple, CollateralDepositedEvent.OutputTuple, CollateralDepositedEvent.OutputObject>;
    getEvent(key: "CollateralTypeAdded"): TypedContractEvent<CollateralTypeAddedEvent.InputTuple, CollateralTypeAddedEvent.OutputTuple, CollateralTypeAddedEvent.OutputObject>;
    getEvent(key: "CollateralWithdrawn"): TypedContractEvent<CollateralWithdrawnEvent.InputTuple, CollateralWithdrawnEvent.OutputTuple, CollateralWithdrawnEvent.OutputObject>;
    getEvent(key: "CurrencyBurned"): TypedContractEvent<CurrencyBurnedEvent.InputTuple, CurrencyBurnedEvent.OutputTuple, CurrencyBurnedEvent.OutputObject>;
    getEvent(key: "CurrencyMinted"): TypedContractEvent<CurrencyMintedEvent.InputTuple, CurrencyMintedEvent.OutputTuple, CurrencyMintedEvent.OutputObject>;
    getEvent(key: "FeesPaid"): TypedContractEvent<FeesPaidEvent.InputTuple, FeesPaidEvent.OutputTuple, FeesPaidEvent.OutputObject>;
    getEvent(key: "Liquidated"): TypedContractEvent<LiquidatedEvent.InputTuple, LiquidatedEvent.OutputTuple, LiquidatedEvent.OutputObject>;
    getEvent(key: "OwnershipHandoverCanceled"): TypedContractEvent<OwnershipHandoverCanceledEvent.InputTuple, OwnershipHandoverCanceledEvent.OutputTuple, OwnershipHandoverCanceledEvent.OutputObject>;
    getEvent(key: "OwnershipHandoverRequested"): TypedContractEvent<OwnershipHandoverRequestedEvent.InputTuple, OwnershipHandoverRequestedEvent.OutputTuple, OwnershipHandoverRequestedEvent.OutputObject>;
    getEvent(key: "OwnershipTransferred"): TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
    filters: {
        "CollateralDeposited(address,uint256)": TypedContractEvent<CollateralDepositedEvent.InputTuple, CollateralDepositedEvent.OutputTuple, CollateralDepositedEvent.OutputObject>;
        CollateralDeposited: TypedContractEvent<CollateralDepositedEvent.InputTuple, CollateralDepositedEvent.OutputTuple, CollateralDepositedEvent.OutputObject>;
        "CollateralTypeAdded(address)": TypedContractEvent<CollateralTypeAddedEvent.InputTuple, CollateralTypeAddedEvent.OutputTuple, CollateralTypeAddedEvent.OutputObject>;
        CollateralTypeAdded: TypedContractEvent<CollateralTypeAddedEvent.InputTuple, CollateralTypeAddedEvent.OutputTuple, CollateralTypeAddedEvent.OutputObject>;
        "CollateralWithdrawn(address,address,uint256)": TypedContractEvent<CollateralWithdrawnEvent.InputTuple, CollateralWithdrawnEvent.OutputTuple, CollateralWithdrawnEvent.OutputObject>;
        CollateralWithdrawn: TypedContractEvent<CollateralWithdrawnEvent.InputTuple, CollateralWithdrawnEvent.OutputTuple, CollateralWithdrawnEvent.OutputObject>;
        "CurrencyBurned(address,uint256)": TypedContractEvent<CurrencyBurnedEvent.InputTuple, CurrencyBurnedEvent.OutputTuple, CurrencyBurnedEvent.OutputObject>;
        CurrencyBurned: TypedContractEvent<CurrencyBurnedEvent.InputTuple, CurrencyBurnedEvent.OutputTuple, CurrencyBurnedEvent.OutputObject>;
        "CurrencyMinted(address,uint256)": TypedContractEvent<CurrencyMintedEvent.InputTuple, CurrencyMintedEvent.OutputTuple, CurrencyMintedEvent.OutputObject>;
        CurrencyMinted: TypedContractEvent<CurrencyMintedEvent.InputTuple, CurrencyMintedEvent.OutputTuple, CurrencyMintedEvent.OutputObject>;
        "FeesPaid(address,uint256)": TypedContractEvent<FeesPaidEvent.InputTuple, FeesPaidEvent.OutputTuple, FeesPaidEvent.OutputObject>;
        FeesPaid: TypedContractEvent<FeesPaidEvent.InputTuple, FeesPaidEvent.OutputTuple, FeesPaidEvent.OutputObject>;
        "Liquidated(address,address,uint256,uint256)": TypedContractEvent<LiquidatedEvent.InputTuple, LiquidatedEvent.OutputTuple, LiquidatedEvent.OutputObject>;
        Liquidated: TypedContractEvent<LiquidatedEvent.InputTuple, LiquidatedEvent.OutputTuple, LiquidatedEvent.OutputObject>;
        "OwnershipHandoverCanceled(address)": TypedContractEvent<OwnershipHandoverCanceledEvent.InputTuple, OwnershipHandoverCanceledEvent.OutputTuple, OwnershipHandoverCanceledEvent.OutputObject>;
        OwnershipHandoverCanceled: TypedContractEvent<OwnershipHandoverCanceledEvent.InputTuple, OwnershipHandoverCanceledEvent.OutputTuple, OwnershipHandoverCanceledEvent.OutputObject>;
        "OwnershipHandoverRequested(address)": TypedContractEvent<OwnershipHandoverRequestedEvent.InputTuple, OwnershipHandoverRequestedEvent.OutputTuple, OwnershipHandoverRequestedEvent.OutputObject>;
        OwnershipHandoverRequested: TypedContractEvent<OwnershipHandoverRequestedEvent.InputTuple, OwnershipHandoverRequestedEvent.OutputTuple, OwnershipHandoverRequestedEvent.OutputObject>;
        "OwnershipTransferred(address,address)": TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
        OwnershipTransferred: TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
    };
}
