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 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 interface ComptrollerInterface extends Interface {
    getFunction(nameOrSignature: "DEFAULT_ADMIN_ROLE" | "PAUSER_ROLE" | "_changeGroupIdForAsset" | "_pause" | "_setCaps" | "_setGlobalConfig" | "_setGovTokenAddress" | "_setInterMintAllowed" | "_setLargestGroupId" | "_setLiquidationIncentive" | "_setPauseGuardian" | "_setPriceOracle" | "_setTimelock" | "_supportMarket" | "_unlistMarket" | "accountAssets" | "allMarkets" | "assetGroup" | "borrowAllowed" | "borrowVerify" | "compLogic" | "enterMarkets" | "exitMarket" | "getAllMarkets" | "getAssetsIn" | "getHypotheticalAccountLiquidity" | "getRoleAdmin" | "getUnderlyingPriceNormalized" | "globalConfig" | "governanceToken" | "grantRole" | "hasRole" | "initialize" | "interMintAllowed" | "isComptroller" | "isListed" | "lastBorrowedAt" | "liquidateBorrowAllowed" | "liquidateBorrowVerify" | "liquidationIncentive" | "marketConfig" | "markets" | "mintAllowed" | "oracle" | "pauseGuardian" | "redeemAllowed" | "redeemVerify" | "redemptionManager" | "removeAssetGroup" | "renounceRole" | "repayBorrowAllowed" | "repayBorrowVerify" | "revokeRole" | "seizeAllowed" | "setAssetGroup" | "supportsInterface" | "timelock" | "transferAllowed" | "version"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "Initialized" | "MarketEntered" | "MarketExited" | "MarketListed" | "MarketUnlisted" | "NewCap" | "NewDependencies" | "NewGlobalConfig" | "NewLiquidationIncentive" | "NewPause" | "NewPauseGuardian" | "NewPriceOracle" | "NewTimelock" | "RemoveAssetGroup" | "RoleAdminChanged" | "RoleGranted" | "RoleRevoked" | "UpdateAssetGroup"): EventFragment;
    encodeFunctionData(functionFragment: "DEFAULT_ADMIN_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "PAUSER_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "_changeGroupIdForAsset", values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "_pause", values: [AddressLike, boolean, boolean, boolean, boolean]): string;
    encodeFunctionData(functionFragment: "_setCaps", values: [AddressLike[], BigNumberish[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "_setGlobalConfig", values: [GlobalConfigStruct]): string;
    encodeFunctionData(functionFragment: "_setGovTokenAddress", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "_setInterMintAllowed", values: [boolean]): string;
    encodeFunctionData(functionFragment: "_setLargestGroupId", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "_setLiquidationIncentive", values: [LiquidationIncentiveStruct]): string;
    encodeFunctionData(functionFragment: "_setPauseGuardian", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "_setPriceOracle", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "_setTimelock", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "_supportMarket", values: [AddressLike, BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "_unlistMarket", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "accountAssets", values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "allMarkets", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "assetGroup", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "borrowAllowed", values: [AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "borrowVerify", values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "compLogic", values?: undefined): 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: "getRoleAdmin", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "getUnderlyingPriceNormalized", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "globalConfig", values?: undefined): string;
    encodeFunctionData(functionFragment: "governanceToken", values?: undefined): string;
    encodeFunctionData(functionFragment: "grantRole", values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "hasRole", values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "initialize", values: [
        AddressLike,
        AddressLike,
        AddressLike,
        AddressLike,
        AddressLike,
        AddressLike
    ]): string;
    encodeFunctionData(functionFragment: "interMintAllowed", values?: undefined): string;
    encodeFunctionData(functionFragment: "isComptroller", values?: undefined): string;
    encodeFunctionData(functionFragment: "isListed", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "lastBorrowedAt", 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: "pauseGuardian", 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: "removeAssetGroup", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "renounceRole", values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "repayBorrowAllowed", values: [AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "repayBorrowVerify", values: [AddressLike, AddressLike, AddressLike, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "revokeRole", values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "seizeAllowed", values: [AddressLike, AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "setAssetGroup", values: [
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "timelock", values?: undefined): string;
    encodeFunctionData(functionFragment: "transferAllowed", values: [AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "version", values?: undefined): string;
    decodeFunctionResult(functionFragment: "DEFAULT_ADMIN_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "PAUSER_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_changeGroupIdForAsset", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_pause", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setCaps", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setGlobalConfig", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setGovTokenAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setInterMintAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setLargestGroupId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setLiquidationIncentive", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setPauseGuardian", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setPriceOracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setTimelock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_supportMarket", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_unlistMarket", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "accountAssets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "allMarkets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "assetGroup", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowVerify", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "compLogic", 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: "getRoleAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getUnderlyingPriceNormalized", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "globalConfig", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "governanceToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "interMintAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isComptroller", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isListed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "lastBorrowedAt", 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: "pauseGuardian", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "redeemAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "redeemVerify", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "redemptionManager", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "removeAssetGroup", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "repayBorrowAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "repayBorrowVerify", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "seizeAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setAssetGroup", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "timelock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "version", data: BytesLike): Result;
}
export declare namespace InitializedEvent {
    type InputTuple = [version: BigNumberish];
    type OutputTuple = [version: bigint];
    interface OutputObject {
        version: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace MarketEnteredEvent {
    type InputTuple = [cToken: AddressLike, account: AddressLike];
    type OutputTuple = [cToken: string, account: string];
    interface OutputObject {
        cToken: string;
        account: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace MarketExitedEvent {
    type InputTuple = [cToken: AddressLike, account: AddressLike];
    type OutputTuple = [cToken: string, account: string];
    interface OutputObject {
        cToken: string;
        account: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace MarketListedEvent {
    type InputTuple = [cToken: AddressLike];
    type OutputTuple = [cToken: string];
    interface OutputObject {
        cToken: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace MarketUnlistedEvent {
    type InputTuple = [cToken: AddressLike];
    type OutputTuple = [cToken: string];
    interface OutputObject {
        cToken: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NewCapEvent {
    type InputTuple = [
        cToken: AddressLike,
        borrowCap: BigNumberish,
        supplyCap: BigNumberish
    ];
    type OutputTuple = [
        cToken: string,
        borrowCap: bigint,
        supplyCap: bigint
    ];
    interface OutputObject {
        cToken: string;
        borrowCap: bigint;
        supplyCap: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NewDependenciesEvent {
    type InputTuple = [
        compLogic: AddressLike,
        redemptionManager: AddressLike
    ];
    type OutputTuple = [compLogic: string, redemptionManager: string];
    interface OutputObject {
        compLogic: string;
        redemptionManager: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NewGlobalConfigEvent {
    type InputTuple = [
        closeFactorPercent: BigNumberish,
        minCloseValue: BigNumberish,
        minSuBorrowValue: BigNumberish,
        minWaitBeforeLiquidatable: BigNumberish,
        largestGroupId: BigNumberish
    ];
    type OutputTuple = [
        closeFactorPercent: bigint,
        minCloseValue: bigint,
        minSuBorrowValue: bigint,
        minWaitBeforeLiquidatable: bigint,
        largestGroupId: bigint
    ];
    interface OutputObject {
        closeFactorPercent: bigint;
        minCloseValue: bigint;
        minSuBorrowValue: bigint;
        minWaitBeforeLiquidatable: bigint;
        largestGroupId: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NewLiquidationIncentiveEvent {
    type InputTuple = [
        heteroPercent: BigNumberish,
        homoPercent: BigNumberish,
        sutokenPercent: BigNumberish
    ];
    type OutputTuple = [
        heteroPercent: bigint,
        homoPercent: bigint,
        sutokenPercent: bigint
    ];
    interface OutputObject {
        heteroPercent: bigint;
        homoPercent: bigint;
        sutokenPercent: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NewPauseEvent {
    type InputTuple = [
        ctoken: AddressLike,
        mintPaused: boolean,
        borrowPaused: boolean,
        transferPaused: boolean,
        seizePaused: boolean
    ];
    type OutputTuple = [
        ctoken: string,
        mintPaused: boolean,
        borrowPaused: boolean,
        transferPaused: boolean,
        seizePaused: boolean
    ];
    interface OutputObject {
        ctoken: string;
        mintPaused: boolean;
        borrowPaused: boolean;
        transferPaused: boolean;
        seizePaused: boolean;
    }
    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 NewPriceOracleEvent {
    type InputTuple = [priceOracle: AddressLike];
    type OutputTuple = [priceOracle: string];
    interface OutputObject {
        priceOracle: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NewTimelockEvent {
    type InputTuple = [timelock: AddressLike];
    type OutputTuple = [timelock: string];
    interface OutputObject {
        timelock: 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];
    type OutputTuple = [groupId: bigint];
    interface OutputObject {
        groupId: bigint;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleAdminChangedEvent {
    type InputTuple = [
        role: BytesLike,
        previousAdminRole: BytesLike,
        newAdminRole: BytesLike
    ];
    type OutputTuple = [
        role: string,
        previousAdminRole: string,
        newAdminRole: string
    ];
    interface OutputObject {
        role: string;
        previousAdminRole: string;
        newAdminRole: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleGrantedEvent {
    type InputTuple = [
        role: BytesLike,
        account: AddressLike,
        sender: AddressLike
    ];
    type OutputTuple = [role: string, account: string, sender: string];
    interface OutputObject {
        role: string;
        account: string;
        sender: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace RoleRevokedEvent {
    type InputTuple = [
        role: BytesLike,
        account: AddressLike,
        sender: AddressLike
    ];
    type OutputTuple = [role: string, account: string, sender: string];
    interface OutputObject {
        role: string;
        account: string;
        sender: string;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export declare namespace UpdateAssetGroupEvent {
    type InputTuple = [
        groupId: BigNumberish,
        intraCRatePercent: BigNumberish,
        intraMintRatePercent: BigNumberish,
        intraSuRatePercent: BigNumberish,
        interCRatePercent: BigNumberish,
        interSuRatePercent: BigNumberish,
        isNewGroup: boolean
    ];
    type OutputTuple = [
        groupId: bigint,
        intraCRatePercent: bigint,
        intraMintRatePercent: bigint,
        intraSuRatePercent: bigint,
        interCRatePercent: bigint,
        interSuRatePercent: bigint,
        isNewGroup: boolean
    ];
    interface OutputObject {
        groupId: bigint;
        intraCRatePercent: bigint;
        intraMintRatePercent: bigint;
        intraSuRatePercent: bigint;
        interCRatePercent: bigint;
        interSuRatePercent: bigint;
        isNewGroup: boolean;
    }
    type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
    type Filter = TypedDeferredTopicFilter<Event>;
    type Log = TypedEventLog<Event>;
    type LogDescription = TypedLogDescription<Event>;
}
export interface Comptroller extends BaseContract {
    connect(runner?: ContractRunner | null): Comptroller;
    waitForDeployment(): Promise<this>;
    interface: ComptrollerInterface;
    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>;
    DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">;
    PAUSER_ROLE: TypedContractMethod<[], [string], "view">;
    _changeGroupIdForAsset: TypedContractMethod<[
        cToken: AddressLike,
        newGroupId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    _pause: TypedContractMethod<[
        cToken: AddressLike,
        mintPaused: boolean,
        borrowPaused: boolean,
        transferPaused: boolean,
        seizePaused: boolean
    ], [
        void
    ], "nonpayable">;
    _setCaps: TypedContractMethod<[
        cTokens: AddressLike[],
        borrowCaps: BigNumberish[],
        supplyCaps: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    _setGlobalConfig: TypedContractMethod<[
        globalConfig_: GlobalConfigStruct
    ], [
        void
    ], "nonpayable">;
    _setGovTokenAddress: TypedContractMethod<[
        _governanceToken: AddressLike
    ], [
        void
    ], "nonpayable">;
    _setInterMintAllowed: TypedContractMethod<[
        allowed: boolean
    ], [
        void
    ], "nonpayable">;
    _setLargestGroupId: TypedContractMethod<[
        largestGroupId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    _setLiquidationIncentive: TypedContractMethod<[
        liquidationIncentive_: LiquidationIncentiveStruct
    ], [
        void
    ], "nonpayable">;
    _setPauseGuardian: TypedContractMethod<[
        newPauseGuardian: AddressLike
    ], [
        void
    ], "nonpayable">;
    _setPriceOracle: TypedContractMethod<[
        _oracle: AddressLike
    ], [
        void
    ], "nonpayable">;
    _setTimelock: TypedContractMethod<[
        _timelock: AddressLike
    ], [
        void
    ], "nonpayable">;
    _supportMarket: TypedContractMethod<[
        cToken: AddressLike,
        groupId: BigNumberish,
        borrowCap: BigNumberish,
        supplyCap: BigNumberish
    ], [
        void
    ], "nonpayable">;
    _unlistMarket: TypedContractMethod<[
        cToken: AddressLike
    ], [
        void
    ], "nonpayable">;
    accountAssets: TypedContractMethod<[
        arg0: AddressLike,
        arg1: BigNumberish
    ], [
        string
    ], "view">;
    allMarkets: TypedContractMethod<[arg0: BigNumberish], [string], "view">;
    assetGroup: TypedContractMethod<[
        arg0: BigNumberish
    ], [
        [
            bigint,
            bigint,
            bigint,
            bigint,
            bigint,
            bigint
        ] & {
            groupId: bigint;
            intraCRatePercent: bigint;
            intraMintRatePercent: bigint;
            intraSuRatePercent: bigint;
            interCRatePercent: bigint;
            interSuRatePercent: bigint;
        }
    ], "view">;
    borrowAllowed: TypedContractMethod<[
        cToken: AddressLike,
        borrower: AddressLike,
        borrowAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    borrowVerify: TypedContractMethod<[
        borrower: AddressLike,
        borrowAmount: BigNumberish
    ], [
        void
    ], "nonpayable">;
    compLogic: TypedContractMethod<[], [string], "view">;
    enterMarkets: TypedContractMethod<[
        cTokens: AddressLike[]
    ], [
        void
    ], "nonpayable">;
    exitMarket: TypedContractMethod<[
        cTokenAddress: 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">;
    getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">;
    getUnderlyingPriceNormalized: TypedContractMethod<[
        cToken: AddressLike
    ], [
        bigint
    ], "view">;
    globalConfig: TypedContractMethod<[
    ], [
        [
            bigint,
            bigint,
            bigint,
            bigint,
            bigint
        ] & {
            closeFactorPercent: bigint;
            minCloseValue: bigint;
            minSuBorrowValue: bigint;
            minWaitBeforeLiquidatable: bigint;
            largestGroupId: bigint;
        }
    ], "view">;
    governanceToken: TypedContractMethod<[], [string], "view">;
    grantRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    hasRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        boolean
    ], "view">;
    initialize: TypedContractMethod<[
        _admin: AddressLike,
        _gov: AddressLike,
        _compLogic: AddressLike,
        _redemptionManager: AddressLike,
        _timelock: AddressLike,
        _oracle: AddressLike
    ], [
        void
    ], "nonpayable">;
    interMintAllowed: TypedContractMethod<[], [boolean], "view">;
    isComptroller: TypedContractMethod<[], [boolean], "view">;
    isListed: TypedContractMethod<[asset: AddressLike], [boolean], "view">;
    lastBorrowedAt: TypedContractMethod<[arg0: AddressLike], [bigint], "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,
        actualRepayAmount: BigNumberish,
        seizeTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    liquidationIncentive: TypedContractMethod<[
    ], [
        [
            bigint,
            bigint,
            bigint
        ] & {
            heteroPercent: bigint;
            homoPercent: bigint;
            sutokenPercent: bigint;
        }
    ], "view">;
    marketConfig: TypedContractMethod<[
        arg0: AddressLike
    ], [
        [
            boolean,
            boolean,
            boolean,
            boolean,
            bigint,
            bigint
        ] & {
            mintPaused: boolean;
            borrowPaused: boolean;
            transferPaused: boolean;
            seizePaused: boolean;
            borrowCap: bigint;
            supplyCap: bigint;
        }
    ], "view">;
    markets: TypedContractMethod<[
        arg0: AddressLike
    ], [
        [
            boolean,
            bigint,
            boolean
        ] & {
            isListed: boolean;
            assetGroupId: bigint;
            isComped: boolean;
        }
    ], "view">;
    mintAllowed: TypedContractMethod<[
        cToken: AddressLike,
        minter: AddressLike,
        mintAmount: BigNumberish,
        exchangeRate: BigNumberish
    ], [
        void
    ], "nonpayable">;
    oracle: TypedContractMethod<[], [string], "view">;
    pauseGuardian: 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">;
    removeAssetGroup: TypedContractMethod<[
        groupId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    renounceRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    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">;
    revokeRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    seizeAllowed: TypedContractMethod<[
        cTokenCollateral: AddressLike,
        cTokenBorrowed: AddressLike,
        liquidator: AddressLike,
        borrower: AddressLike,
        seizeTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setAssetGroup: TypedContractMethod<[
        groupId: BigNumberish,
        intraCRatePercent: BigNumberish,
        intraMintRatePercent: BigNumberish,
        intraSuRatePercent: BigNumberish,
        interCRatePercent: BigNumberish,
        interSuRatePercent: BigNumberish
    ], [
        void
    ], "nonpayable">;
    supportsInterface: TypedContractMethod<[
        interfaceId: BytesLike
    ], [
        boolean
    ], "view">;
    timelock: TypedContractMethod<[], [string], "view">;
    transferAllowed: TypedContractMethod<[
        cToken: AddressLike,
        src: AddressLike,
        dst: AddressLike,
        transferTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    version: TypedContractMethod<[], [bigint], "view">;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: "DEFAULT_ADMIN_ROLE"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "PAUSER_ROLE"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "_changeGroupIdForAsset"): TypedContractMethod<[
        cToken: AddressLike,
        newGroupId: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "_pause"): TypedContractMethod<[
        cToken: AddressLike,
        mintPaused: boolean,
        borrowPaused: boolean,
        transferPaused: boolean,
        seizePaused: boolean
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "_setCaps"): TypedContractMethod<[
        cTokens: AddressLike[],
        borrowCaps: BigNumberish[],
        supplyCaps: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "_setGlobalConfig"): TypedContractMethod<[
        globalConfig_: GlobalConfigStruct
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "_setGovTokenAddress"): TypedContractMethod<[_governanceToken: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "_setInterMintAllowed"): TypedContractMethod<[allowed: boolean], [void], "nonpayable">;
    getFunction(nameOrSignature: "_setLargestGroupId"): TypedContractMethod<[largestGroupId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "_setLiquidationIncentive"): TypedContractMethod<[
        liquidationIncentive_: LiquidationIncentiveStruct
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "_setPauseGuardian"): TypedContractMethod<[newPauseGuardian: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "_setPriceOracle"): TypedContractMethod<[_oracle: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "_setTimelock"): TypedContractMethod<[_timelock: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "_supportMarket"): TypedContractMethod<[
        cToken: AddressLike,
        groupId: BigNumberish,
        borrowCap: BigNumberish,
        supplyCap: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "_unlistMarket"): TypedContractMethod<[cToken: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "accountAssets"): TypedContractMethod<[
        arg0: AddressLike,
        arg1: BigNumberish
    ], [
        string
    ], "view">;
    getFunction(nameOrSignature: "allMarkets"): TypedContractMethod<[arg0: BigNumberish], [string], "view">;
    getFunction(nameOrSignature: "assetGroup"): TypedContractMethod<[
        arg0: BigNumberish
    ], [
        [
            bigint,
            bigint,
            bigint,
            bigint,
            bigint,
            bigint
        ] & {
            groupId: bigint;
            intraCRatePercent: bigint;
            intraMintRatePercent: bigint;
            intraSuRatePercent: bigint;
            interCRatePercent: bigint;
            interSuRatePercent: bigint;
        }
    ], "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: "compLogic"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "enterMarkets"): TypedContractMethod<[cTokens: AddressLike[]], [void], "nonpayable">;
    getFunction(nameOrSignature: "exitMarket"): TypedContractMethod<[cTokenAddress: 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: "getRoleAdmin"): TypedContractMethod<[role: BytesLike], [string], "view">;
    getFunction(nameOrSignature: "getUnderlyingPriceNormalized"): TypedContractMethod<[cToken: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "globalConfig"): TypedContractMethod<[
    ], [
        [
            bigint,
            bigint,
            bigint,
            bigint,
            bigint
        ] & {
            closeFactorPercent: bigint;
            minCloseValue: bigint;
            minSuBorrowValue: bigint;
            minWaitBeforeLiquidatable: bigint;
            largestGroupId: bigint;
        }
    ], "view">;
    getFunction(nameOrSignature: "governanceToken"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "grantRole"): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "hasRole"): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        boolean
    ], "view">;
    getFunction(nameOrSignature: "initialize"): TypedContractMethod<[
        _admin: AddressLike,
        _gov: AddressLike,
        _compLogic: AddressLike,
        _redemptionManager: AddressLike,
        _timelock: AddressLike,
        _oracle: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "interMintAllowed"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "isComptroller"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "isListed"): TypedContractMethod<[asset: AddressLike], [boolean], "view">;
    getFunction(nameOrSignature: "lastBorrowedAt"): TypedContractMethod<[arg0: AddressLike], [bigint], "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,
        actualRepayAmount: BigNumberish,
        seizeTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "liquidationIncentive"): TypedContractMethod<[
    ], [
        [
            bigint,
            bigint,
            bigint
        ] & {
            heteroPercent: bigint;
            homoPercent: bigint;
            sutokenPercent: bigint;
        }
    ], "view">;
    getFunction(nameOrSignature: "marketConfig"): TypedContractMethod<[
        arg0: AddressLike
    ], [
        [
            boolean,
            boolean,
            boolean,
            boolean,
            bigint,
            bigint
        ] & {
            mintPaused: boolean;
            borrowPaused: boolean;
            transferPaused: boolean;
            seizePaused: boolean;
            borrowCap: bigint;
            supplyCap: bigint;
        }
    ], "view">;
    getFunction(nameOrSignature: "markets"): TypedContractMethod<[
        arg0: AddressLike
    ], [
        [
            boolean,
            bigint,
            boolean
        ] & {
            isListed: boolean;
            assetGroupId: bigint;
            isComped: boolean;
        }
    ], "view">;
    getFunction(nameOrSignature: "mintAllowed"): TypedContractMethod<[
        cToken: AddressLike,
        minter: AddressLike,
        mintAmount: BigNumberish,
        exchangeRate: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "oracle"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "pauseGuardian"): 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: "removeAssetGroup"): TypedContractMethod<[groupId: BigNumberish], [void], "nonpayable">;
    getFunction(nameOrSignature: "renounceRole"): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    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: "revokeRole"): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "seizeAllowed"): TypedContractMethod<[
        cTokenCollateral: AddressLike,
        cTokenBorrowed: AddressLike,
        liquidator: AddressLike,
        borrower: AddressLike,
        seizeTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setAssetGroup"): TypedContractMethod<[
        groupId: BigNumberish,
        intraCRatePercent: BigNumberish,
        intraMintRatePercent: BigNumberish,
        intraSuRatePercent: BigNumberish,
        interCRatePercent: BigNumberish,
        interSuRatePercent: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">;
    getFunction(nameOrSignature: "timelock"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "transferAllowed"): TypedContractMethod<[
        cToken: AddressLike,
        src: AddressLike,
        dst: AddressLike,
        transferTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "version"): TypedContractMethod<[], [bigint], "view">;
    getEvent(key: "Initialized"): TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
    getEvent(key: "MarketEntered"): TypedContractEvent<MarketEnteredEvent.InputTuple, MarketEnteredEvent.OutputTuple, MarketEnteredEvent.OutputObject>;
    getEvent(key: "MarketExited"): TypedContractEvent<MarketExitedEvent.InputTuple, MarketExitedEvent.OutputTuple, MarketExitedEvent.OutputObject>;
    getEvent(key: "MarketListed"): TypedContractEvent<MarketListedEvent.InputTuple, MarketListedEvent.OutputTuple, MarketListedEvent.OutputObject>;
    getEvent(key: "MarketUnlisted"): TypedContractEvent<MarketUnlistedEvent.InputTuple, MarketUnlistedEvent.OutputTuple, MarketUnlistedEvent.OutputObject>;
    getEvent(key: "NewCap"): TypedContractEvent<NewCapEvent.InputTuple, NewCapEvent.OutputTuple, NewCapEvent.OutputObject>;
    getEvent(key: "NewDependencies"): TypedContractEvent<NewDependenciesEvent.InputTuple, NewDependenciesEvent.OutputTuple, NewDependenciesEvent.OutputObject>;
    getEvent(key: "NewGlobalConfig"): TypedContractEvent<NewGlobalConfigEvent.InputTuple, NewGlobalConfigEvent.OutputTuple, NewGlobalConfigEvent.OutputObject>;
    getEvent(key: "NewLiquidationIncentive"): TypedContractEvent<NewLiquidationIncentiveEvent.InputTuple, NewLiquidationIncentiveEvent.OutputTuple, NewLiquidationIncentiveEvent.OutputObject>;
    getEvent(key: "NewPause"): TypedContractEvent<NewPauseEvent.InputTuple, NewPauseEvent.OutputTuple, NewPauseEvent.OutputObject>;
    getEvent(key: "NewPauseGuardian"): TypedContractEvent<NewPauseGuardianEvent.InputTuple, NewPauseGuardianEvent.OutputTuple, NewPauseGuardianEvent.OutputObject>;
    getEvent(key: "NewPriceOracle"): TypedContractEvent<NewPriceOracleEvent.InputTuple, NewPriceOracleEvent.OutputTuple, NewPriceOracleEvent.OutputObject>;
    getEvent(key: "NewTimelock"): TypedContractEvent<NewTimelockEvent.InputTuple, NewTimelockEvent.OutputTuple, NewTimelockEvent.OutputObject>;
    getEvent(key: "RemoveAssetGroup"): TypedContractEvent<RemoveAssetGroupEvent.InputTuple, RemoveAssetGroupEvent.OutputTuple, RemoveAssetGroupEvent.OutputObject>;
    getEvent(key: "RoleAdminChanged"): TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
    getEvent(key: "RoleGranted"): TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
    getEvent(key: "RoleRevoked"): TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
    getEvent(key: "UpdateAssetGroup"): TypedContractEvent<UpdateAssetGroupEvent.InputTuple, UpdateAssetGroupEvent.OutputTuple, UpdateAssetGroupEvent.OutputObject>;
    filters: {
        "Initialized(uint8)": TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
        Initialized: TypedContractEvent<InitializedEvent.InputTuple, InitializedEvent.OutputTuple, InitializedEvent.OutputObject>;
        "MarketEntered(address,address)": TypedContractEvent<MarketEnteredEvent.InputTuple, MarketEnteredEvent.OutputTuple, MarketEnteredEvent.OutputObject>;
        MarketEntered: TypedContractEvent<MarketEnteredEvent.InputTuple, MarketEnteredEvent.OutputTuple, MarketEnteredEvent.OutputObject>;
        "MarketExited(address,address)": TypedContractEvent<MarketExitedEvent.InputTuple, MarketExitedEvent.OutputTuple, MarketExitedEvent.OutputObject>;
        MarketExited: TypedContractEvent<MarketExitedEvent.InputTuple, MarketExitedEvent.OutputTuple, MarketExitedEvent.OutputObject>;
        "MarketListed(address)": TypedContractEvent<MarketListedEvent.InputTuple, MarketListedEvent.OutputTuple, MarketListedEvent.OutputObject>;
        MarketListed: TypedContractEvent<MarketListedEvent.InputTuple, MarketListedEvent.OutputTuple, MarketListedEvent.OutputObject>;
        "MarketUnlisted(address)": TypedContractEvent<MarketUnlistedEvent.InputTuple, MarketUnlistedEvent.OutputTuple, MarketUnlistedEvent.OutputObject>;
        MarketUnlisted: TypedContractEvent<MarketUnlistedEvent.InputTuple, MarketUnlistedEvent.OutputTuple, MarketUnlistedEvent.OutputObject>;
        "NewCap(address,uint120,uint120)": TypedContractEvent<NewCapEvent.InputTuple, NewCapEvent.OutputTuple, NewCapEvent.OutputObject>;
        NewCap: TypedContractEvent<NewCapEvent.InputTuple, NewCapEvent.OutputTuple, NewCapEvent.OutputObject>;
        "NewDependencies(address,address)": TypedContractEvent<NewDependenciesEvent.InputTuple, NewDependenciesEvent.OutputTuple, NewDependenciesEvent.OutputObject>;
        NewDependencies: TypedContractEvent<NewDependenciesEvent.InputTuple, NewDependenciesEvent.OutputTuple, NewDependenciesEvent.OutputObject>;
        "NewGlobalConfig(uint16,uint32,uint32,uint32,uint8)": TypedContractEvent<NewGlobalConfigEvent.InputTuple, NewGlobalConfigEvent.OutputTuple, NewGlobalConfigEvent.OutputObject>;
        NewGlobalConfig: TypedContractEvent<NewGlobalConfigEvent.InputTuple, NewGlobalConfigEvent.OutputTuple, NewGlobalConfigEvent.OutputObject>;
        "NewLiquidationIncentive(uint16,uint64,uint64)": TypedContractEvent<NewLiquidationIncentiveEvent.InputTuple, NewLiquidationIncentiveEvent.OutputTuple, NewLiquidationIncentiveEvent.OutputObject>;
        NewLiquidationIncentive: TypedContractEvent<NewLiquidationIncentiveEvent.InputTuple, NewLiquidationIncentiveEvent.OutputTuple, NewLiquidationIncentiveEvent.OutputObject>;
        "NewPause(address,bool,bool,bool,bool)": TypedContractEvent<NewPauseEvent.InputTuple, NewPauseEvent.OutputTuple, NewPauseEvent.OutputObject>;
        NewPause: TypedContractEvent<NewPauseEvent.InputTuple, NewPauseEvent.OutputTuple, NewPauseEvent.OutputObject>;
        "NewPauseGuardian(address,address)": TypedContractEvent<NewPauseGuardianEvent.InputTuple, NewPauseGuardianEvent.OutputTuple, NewPauseGuardianEvent.OutputObject>;
        NewPauseGuardian: TypedContractEvent<NewPauseGuardianEvent.InputTuple, NewPauseGuardianEvent.OutputTuple, NewPauseGuardianEvent.OutputObject>;
        "NewPriceOracle(address)": TypedContractEvent<NewPriceOracleEvent.InputTuple, NewPriceOracleEvent.OutputTuple, NewPriceOracleEvent.OutputObject>;
        NewPriceOracle: TypedContractEvent<NewPriceOracleEvent.InputTuple, NewPriceOracleEvent.OutputTuple, NewPriceOracleEvent.OutputObject>;
        "NewTimelock(address)": TypedContractEvent<NewTimelockEvent.InputTuple, NewTimelockEvent.OutputTuple, NewTimelockEvent.OutputObject>;
        NewTimelock: TypedContractEvent<NewTimelockEvent.InputTuple, NewTimelockEvent.OutputTuple, NewTimelockEvent.OutputObject>;
        "RemoveAssetGroup(uint8)": TypedContractEvent<RemoveAssetGroupEvent.InputTuple, RemoveAssetGroupEvent.OutputTuple, RemoveAssetGroupEvent.OutputObject>;
        RemoveAssetGroup: TypedContractEvent<RemoveAssetGroupEvent.InputTuple, RemoveAssetGroupEvent.OutputTuple, RemoveAssetGroupEvent.OutputObject>;
        "RoleAdminChanged(bytes32,bytes32,bytes32)": TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
        RoleAdminChanged: TypedContractEvent<RoleAdminChangedEvent.InputTuple, RoleAdminChangedEvent.OutputTuple, RoleAdminChangedEvent.OutputObject>;
        "RoleGranted(bytes32,address,address)": TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
        RoleGranted: TypedContractEvent<RoleGrantedEvent.InputTuple, RoleGrantedEvent.OutputTuple, RoleGrantedEvent.OutputObject>;
        "RoleRevoked(bytes32,address,address)": TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
        RoleRevoked: TypedContractEvent<RoleRevokedEvent.InputTuple, RoleRevokedEvent.OutputTuple, RoleRevokedEvent.OutputObject>;
        "UpdateAssetGroup(uint8,uint16,uint16,uint16,uint16,uint16,bool)": TypedContractEvent<UpdateAssetGroupEvent.InputTuple, UpdateAssetGroupEvent.OutputTuple, UpdateAssetGroupEvent.OutputObject>;
        UpdateAssetGroup: TypedContractEvent<UpdateAssetGroupEvent.InputTuple, UpdateAssetGroupEvent.OutputTuple, UpdateAssetGroupEvent.OutputObject>;
    };
}
