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 type CompactAssetGroupStruct = {
    groupId: BigNumberish;
    intraCRatePercent: BigNumberish;
    intraMintRatePercent: BigNumberish;
    intraSuRatePercent: BigNumberish;
    interCRatePercent: BigNumberish;
    interSuRatePercent: BigNumberish;
};
export type CompactAssetGroupStructOutput = [
    groupId: bigint,
    intraCRatePercent: bigint,
    intraMintRatePercent: bigint,
    intraSuRatePercent: bigint,
    interCRatePercent: bigint,
    interSuRatePercent: bigint
] & {
    groupId: bigint;
    intraCRatePercent: bigint;
    intraMintRatePercent: bigint;
    intraSuRatePercent: bigint;
    interCRatePercent: bigint;
    interSuRatePercent: bigint;
};
export type GlobalConfigStruct = {
    closeFactorPercent: BigNumberish;
    minCloseValue: BigNumberish;
    minSuBorrowValue: BigNumberish;
    minWaitBeforeLiquidatable: BigNumberish;
    largestGroupId: BigNumberish;
};
export type GlobalConfigStructOutput = [
    closeFactorPercent: bigint,
    minCloseValue: bigint,
    minSuBorrowValue: bigint,
    minWaitBeforeLiquidatable: bigint,
    largestGroupId: bigint
] & {
    closeFactorPercent: bigint;
    minCloseValue: bigint;
    minSuBorrowValue: bigint;
    minWaitBeforeLiquidatable: bigint;
    largestGroupId: bigint;
};
export type LiquidationIncentiveStruct = {
    heteroPercent: BigNumberish;
    homoPercent: BigNumberish;
    sutokenPercent: BigNumberish;
};
export type LiquidationIncentiveStructOutput = [
    heteroPercent: bigint,
    homoPercent: bigint,
    sutokenPercent: bigint
] & {
    heteroPercent: bigint;
    homoPercent: bigint;
    sutokenPercent: bigint;
};
export type MarketConfigStruct = {
    mintPaused: boolean;
    borrowPaused: boolean;
    transferPaused: boolean;
    seizePaused: boolean;
    borrowCap: BigNumberish;
    supplyCap: BigNumberish;
};
export type MarketConfigStructOutput = [
    mintPaused: boolean,
    borrowPaused: boolean,
    transferPaused: boolean,
    seizePaused: boolean,
    borrowCap: bigint,
    supplyCap: bigint
] & {
    mintPaused: boolean;
    borrowPaused: boolean;
    transferPaused: boolean;
    seizePaused: boolean;
    borrowCap: bigint;
    supplyCap: bigint;
};
export interface IComptrollerInterface extends Interface {
    getFunction(nameOrSignature: "assetGroup" | "borrowAllowed" | "borrowVerify" | "claimSumer" | "compAccrued" | "enterMarkets" | "exitMarket" | "getAllMarkets" | "getAssetsIn" | "getHypotheticalAccountLiquidity" | "getUnderlyingPriceNormalized" | "globalConfig" | "interMintAllowed" | "isComptroller" | "isListed" | "liquidateBorrowAllowed" | "liquidateBorrowVerify" | "liquidationIncentive" | "marketConfig" | "markets" | "mintAllowed" | "oracle" | "redeemAllowed" | "redeemVerify" | "redemptionManager" | "repayBorrowAllowed" | "repayBorrowVerify" | "seizeAllowed" | "seizeVerify" | "timelock" | "transferAllowed"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "ActionPaused" | "NewBorrowCap" | "NewBorrowCapGuardian" | "NewPauseGuardian" | "RemoveAssetGroup"): EventFragment;
    encodeFunctionData(functionFragment: "assetGroup", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "borrowAllowed", values: [AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "borrowVerify", values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "claimSumer", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "compAccrued", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "enterMarkets", values: [AddressLike[]]): string;
    encodeFunctionData(functionFragment: "exitMarket", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "getAllMarkets", values?: undefined): string;
    encodeFunctionData(functionFragment: "getAssetsIn", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "getHypotheticalAccountLiquidity", values: [AddressLike, AddressLike, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getUnderlyingPriceNormalized", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "globalConfig", values?: undefined): string;
    encodeFunctionData(functionFragment: "interMintAllowed", values?: undefined): string;
    encodeFunctionData(functionFragment: "isComptroller", values?: undefined): string;
    encodeFunctionData(functionFragment: "isListed", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "liquidateBorrowAllowed", values: [AddressLike, AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "liquidateBorrowVerify", values: [
        AddressLike,
        AddressLike,
        AddressLike,
        AddressLike,
        BigNumberish,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "liquidationIncentive", values?: undefined): string;
    encodeFunctionData(functionFragment: "marketConfig", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "markets", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "mintAllowed", values: [AddressLike, AddressLike, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "oracle", values?: undefined): string;
    encodeFunctionData(functionFragment: "redeemAllowed", values: [AddressLike, AddressLike, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "redeemVerify", values: [AddressLike, AddressLike, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "redemptionManager", values?: undefined): string;
    encodeFunctionData(functionFragment: "repayBorrowAllowed", values: [AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "repayBorrowVerify", values: [AddressLike, AddressLike, AddressLike, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "seizeAllowed", values: [AddressLike, AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "seizeVerify", values: [AddressLike, AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "timelock", values?: undefined): string;
    encodeFunctionData(functionFragment: "transferAllowed", values: [AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    decodeFunctionResult(functionFragment: "assetGroup", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowVerify", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "claimSumer", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "compAccrued", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "enterMarkets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "exitMarket", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAllMarkets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAssetsIn", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getHypotheticalAccountLiquidity", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getUnderlyingPriceNormalized", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "globalConfig", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "interMintAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isComptroller", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isListed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "liquidateBorrowAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "liquidateBorrowVerify", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "liquidationIncentive", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "marketConfig", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "markets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "oracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "redeemAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "redeemVerify", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "redemptionManager", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "repayBorrowAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "repayBorrowVerify", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "seizeAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "seizeVerify", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "timelock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferAllowed", data: BytesLike): Result;
}
export declare namespace ActionPausedEvent {
    type InputTuple = [
        cToken: AddressLike,
        action: string,
        pauseState: boolean
    ];
    type OutputTuple = [
        cToken: string,
        action: string,
        pauseState: boolean
    ];
    interface OutputObject {
        cToken: string;
        action: string;
        pauseState: boolean;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NewBorrowCapEvent {
    type InputTuple = [cToken: AddressLike, newBorrowCap: BigNumberish];
    type OutputTuple = [cToken: string, newBorrowCap: bigint];
    interface OutputObject {
        cToken: string;
        newBorrowCap: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NewBorrowCapGuardianEvent {
    type InputTuple = [
        oldBorrowCapGuardian: AddressLike,
        newBorrowCapGuardian: AddressLike
    ];
    type OutputTuple = [
        oldBorrowCapGuardian: string,
        newBorrowCapGuardian: string
    ];
    interface OutputObject {
        oldBorrowCapGuardian: string;
        newBorrowCapGuardian: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NewPauseGuardianEvent {
    type InputTuple = [
        oldPauseGuardian: AddressLike,
        newPauseGuardian: AddressLike
    ];
    type OutputTuple = [
        oldPauseGuardian: string,
        newPauseGuardian: string
    ];
    interface OutputObject {
        oldPauseGuardian: string;
        newPauseGuardian: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RemoveAssetGroupEvent {
    type InputTuple = [
        groupId: BigNumberish,
        equalAssetsGroupNum: BigNumberish
    ];
    type OutputTuple = [groupId: bigint, equalAssetsGroupNum: bigint];
    interface OutputObject {
        groupId: bigint;
        equalAssetsGroupNum: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface IComptroller extends BaseContract {
    connect(runner?: ContractRunner | null): IComptroller;
    waitForDeployment(): Promise<this>;
    interface: IComptrollerInterface;
    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>;
    assetGroup: TypedContractMethod<[
        groupId: BigNumberish
    ], [
        CompactAssetGroupStructOutput
    ], "view">;
    borrowAllowed: TypedContractMethod<[
        cToken: AddressLike,
        borrower: AddressLike,
        borrowAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    borrowVerify: TypedContractMethod<[
        borrower: AddressLike,
        borrowAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    claimSumer: TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">;
    compAccrued: TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
    enterMarkets: TypedContractMethod<[
        cTokens: AddressLike[]
    ], [
        void
    ], "nonpayable">;
    exitMarket: TypedContractMethod<[cToken: AddressLike], [void], "nonpayable">;
    getAllMarkets: TypedContractMethod<[], [string[]], "view">;
    getAssetsIn: TypedContractMethod<[account: AddressLike], [string[]], "view">;
    getHypotheticalAccountLiquidity: TypedContractMethod<[
        account: AddressLike,
        cTokenModify: AddressLike,
        redeemTokens: BigNumberish,
        borrowAmount: BigNumberish
    ], [
        [bigint, bigint]
    ], "view">;
    getUnderlyingPriceNormalized: TypedContractMethod<[
        cToken: AddressLike
    ], [
        bigint
    ], "view">;
    globalConfig: TypedContractMethod<[], [GlobalConfigStructOutput], "view">;
    interMintAllowed: TypedContractMethod<[], [boolean], "view">;
    isComptroller: TypedContractMethod<[], [boolean], "view">;
    isListed: TypedContractMethod<[asset: AddressLike], [boolean], "view">;
    liquidateBorrowAllowed: TypedContractMethod<[
        cTokenBorrowed: AddressLike,
        cTokenCollateral: AddressLike,
        liquidator: AddressLike,
        borrower: AddressLike,
        repayAmount: BigNumberish
    ], [
        void
    ], "view">;
    liquidateBorrowVerify: TypedContractMethod<[
        cTokenBorrowed: AddressLike,
        cTokenCollateral: AddressLike,
        liquidator: AddressLike,
        borrower: AddressLike,
        repayAmount: BigNumberish,
        seizeTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    liquidationIncentive: TypedContractMethod<[
    ], [
        LiquidationIncentiveStructOutput
    ], "view">;
    marketConfig: TypedContractMethod<[
        cToken: AddressLike
    ], [
        MarketConfigStructOutput
    ], "view">;
    markets: TypedContractMethod<[
        arg0: AddressLike
    ], [
        [boolean, bigint, boolean]
    ], "view">;
    mintAllowed: TypedContractMethod<[
        cToken: AddressLike,
        minter: AddressLike,
        mintAmount: BigNumberish,
        exchangeRate: BigNumberish
    ], [
        void
    ], "nonpayable">;
    oracle: TypedContractMethod<[], [string], "view">;
    redeemAllowed: TypedContractMethod<[
        cToken: AddressLike,
        redeemer: AddressLike,
        redeemTokens: BigNumberish,
        exchangeRate: BigNumberish
    ], [
        void
    ], "nonpayable">;
    redeemVerify: TypedContractMethod<[
        cToken: AddressLike,
        redeemer: AddressLike,
        redeemAmount: BigNumberish,
        redeemTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    redemptionManager: TypedContractMethod<[], [string], "view">;
    repayBorrowAllowed: TypedContractMethod<[
        cToken: AddressLike,
        payer: AddressLike,
        borrower: AddressLike,
        repayAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    repayBorrowVerify: TypedContractMethod<[
        cToken: AddressLike,
        payer: AddressLike,
        borrower: AddressLike,
        actualRepayAmount: BigNumberish,
        borrowIndex: BigNumberish
    ], [
        void
    ], "nonpayable">;
    seizeAllowed: TypedContractMethod<[
        cTokenCollateral: AddressLike,
        cTokenBorrowed: AddressLike,
        liquidator: AddressLike,
        borrower: AddressLike,
        seizeTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    seizeVerify: TypedContractMethod<[
        cTokenCollateral: AddressLike,
        cTokenBorrowed: AddressLike,
        liquidator: AddressLike,
        borrower: AddressLike,
        seizeTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    timelock: TypedContractMethod<[], [string], "view">;
    transferAllowed: TypedContractMethod<[
        cToken: AddressLike,
        src: AddressLike,
        dst: AddressLike,
        transferTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: "assetGroup"): TypedContractMethod<[
        groupId: BigNumberish
    ], [
        CompactAssetGroupStructOutput
    ], "view">;
    getFunction(nameOrSignature: "borrowAllowed"): TypedContractMethod<[
        cToken: AddressLike,
        borrower: AddressLike,
        borrowAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "borrowVerify"): TypedContractMethod<[
        borrower: AddressLike,
        borrowAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "claimSumer"): TypedContractMethod<[arg0: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "compAccrued"): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "enterMarkets"): TypedContractMethod<[cTokens: AddressLike[]], [void], "nonpayable">;
    getFunction(nameOrSignature: "exitMarket"): TypedContractMethod<[cToken: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "getAllMarkets"): TypedContractMethod<[], [string[]], "view">;
    getFunction(nameOrSignature: "getAssetsIn"): TypedContractMethod<[account: AddressLike], [string[]], "view">;
    getFunction(nameOrSignature: "getHypotheticalAccountLiquidity"): TypedContractMethod<[
        account: AddressLike,
        cTokenModify: AddressLike,
        redeemTokens: BigNumberish,
        borrowAmount: BigNumberish
    ], [
        [bigint, bigint]
    ], "view">;
    getFunction(nameOrSignature: "getUnderlyingPriceNormalized"): TypedContractMethod<[cToken: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "globalConfig"): TypedContractMethod<[], [GlobalConfigStructOutput], "view">;
    getFunction(nameOrSignature: "interMintAllowed"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "isComptroller"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "isListed"): TypedContractMethod<[asset: AddressLike], [boolean], "view">;
    getFunction(nameOrSignature: "liquidateBorrowAllowed"): TypedContractMethod<[
        cTokenBorrowed: AddressLike,
        cTokenCollateral: AddressLike,
        liquidator: AddressLike,
        borrower: AddressLike,
        repayAmount: BigNumberish
    ], [
        void
    ], "view">;
    getFunction(nameOrSignature: "liquidateBorrowVerify"): TypedContractMethod<[
        cTokenBorrowed: AddressLike,
        cTokenCollateral: AddressLike,
        liquidator: AddressLike,
        borrower: AddressLike,
        repayAmount: BigNumberish,
        seizeTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "liquidationIncentive"): TypedContractMethod<[], [LiquidationIncentiveStructOutput], "view">;
    getFunction(nameOrSignature: "marketConfig"): TypedContractMethod<[
        cToken: AddressLike
    ], [
        MarketConfigStructOutput
    ], "view">;
    getFunction(nameOrSignature: "markets"): TypedContractMethod<[
        arg0: AddressLike
    ], [
        [boolean, bigint, boolean]
    ], "view">;
    getFunction(nameOrSignature: "mintAllowed"): TypedContractMethod<[
        cToken: AddressLike,
        minter: AddressLike,
        mintAmount: BigNumberish,
        exchangeRate: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "oracle"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "redeemAllowed"): TypedContractMethod<[
        cToken: AddressLike,
        redeemer: AddressLike,
        redeemTokens: BigNumberish,
        exchangeRate: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "redeemVerify"): TypedContractMethod<[
        cToken: AddressLike,
        redeemer: AddressLike,
        redeemAmount: BigNumberish,
        redeemTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "redemptionManager"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "repayBorrowAllowed"): TypedContractMethod<[
        cToken: AddressLike,
        payer: AddressLike,
        borrower: AddressLike,
        repayAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "repayBorrowVerify"): TypedContractMethod<[
        cToken: AddressLike,
        payer: AddressLike,
        borrower: AddressLike,
        actualRepayAmount: BigNumberish,
        borrowIndex: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "seizeAllowed"): TypedContractMethod<[
        cTokenCollateral: AddressLike,
        cTokenBorrowed: AddressLike,
        liquidator: AddressLike,
        borrower: AddressLike,
        seizeTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "seizeVerify"): TypedContractMethod<[
        cTokenCollateral: AddressLike,
        cTokenBorrowed: AddressLike,
        liquidator: AddressLike,
        borrower: AddressLike,
        seizeTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "timelock"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "transferAllowed"): TypedContractMethod<[
        cToken: AddressLike,
        src: AddressLike,
        dst: AddressLike,
        transferTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getEvent(key: "ActionPaused"): TypedContractEvent<ActionPausedEvent.InputTuple, ActionPausedEvent.OutputTuple, ActionPausedEvent.OutputObject>;
    getEvent(key: "NewBorrowCap"): TypedContractEvent<NewBorrowCapEvent.InputTuple, NewBorrowCapEvent.OutputTuple, NewBorrowCapEvent.OutputObject>;
    getEvent(key: "NewBorrowCapGuardian"): TypedContractEvent<NewBorrowCapGuardianEvent.InputTuple, NewBorrowCapGuardianEvent.OutputTuple, NewBorrowCapGuardianEvent.OutputObject>;
    getEvent(key: "NewPauseGuardian"): TypedContractEvent<NewPauseGuardianEvent.InputTuple, NewPauseGuardianEvent.OutputTuple, NewPauseGuardianEvent.OutputObject>;
    getEvent(key: "RemoveAssetGroup"): TypedContractEvent<RemoveAssetGroupEvent.InputTuple, RemoveAssetGroupEvent.OutputTuple, RemoveAssetGroupEvent.OutputObject>;
    filters: {
        "ActionPaused(address,string,bool)": TypedContractEvent<ActionPausedEvent.InputTuple, ActionPausedEvent.OutputTuple, ActionPausedEvent.OutputObject>;
        ActionPaused: TypedContractEvent<ActionPausedEvent.InputTuple, ActionPausedEvent.OutputTuple, ActionPausedEvent.OutputObject>;
        "NewBorrowCap(address,uint256)": TypedContractEvent<NewBorrowCapEvent.InputTuple, NewBorrowCapEvent.OutputTuple, NewBorrowCapEvent.OutputObject>;
        NewBorrowCap: TypedContractEvent<NewBorrowCapEvent.InputTuple, NewBorrowCapEvent.OutputTuple, NewBorrowCapEvent.OutputObject>;
        "NewBorrowCapGuardian(address,address)": TypedContractEvent<NewBorrowCapGuardianEvent.InputTuple, NewBorrowCapGuardianEvent.OutputTuple, NewBorrowCapGuardianEvent.OutputObject>;
        NewBorrowCapGuardian: TypedContractEvent<NewBorrowCapGuardianEvent.InputTuple, NewBorrowCapGuardianEvent.OutputTuple, NewBorrowCapGuardianEvent.OutputObject>;
        "NewPauseGuardian(address,address)": TypedContractEvent<NewPauseGuardianEvent.InputTuple, NewPauseGuardianEvent.OutputTuple, NewPauseGuardianEvent.OutputObject>;
        NewPauseGuardian: TypedContractEvent<NewPauseGuardianEvent.InputTuple, NewPauseGuardianEvent.OutputTuple, NewPauseGuardianEvent.OutputObject>;
        "RemoveAssetGroup(uint8,uint8)": TypedContractEvent<RemoveAssetGroupEvent.InputTuple, RemoveAssetGroupEvent.OutputTuple, RemoveAssetGroupEvent.OutputObject>;
        RemoveAssetGroup: TypedContractEvent<RemoveAssetGroupEvent.InputTuple, RemoveAssetGroupEvent.OutputTuple, RemoveAssetGroupEvent.OutputObject>;
    };
}
