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 ExpStruct = {
    mantissa: BigNumberish;
};
export type ExpStructOutput = [mantissa: bigint] & {
    mantissa: bigint;
};
export declare namespace IComptroller {
    type AssetGroupStruct = {
        groupId: BigNumberish;
        groupName: string;
        intraCRateMantissa: BigNumberish;
        intraMintRateMantissa: BigNumberish;
        intraSuRateMantissa: BigNumberish;
        interCRateMantissa: BigNumberish;
        interSuRateMantissa: BigNumberish;
        exist: boolean;
    };
    type AssetGroupStructOutput = [
        groupId: bigint,
        groupName: string,
        intraCRateMantissa: bigint,
        intraMintRateMantissa: bigint,
        intraSuRateMantissa: bigint,
        interCRateMantissa: bigint,
        interSuRateMantissa: bigint,
        exist: boolean
    ] & {
        groupId: bigint;
        groupName: string;
        intraCRateMantissa: bigint;
        intraMintRateMantissa: bigint;
        intraSuRateMantissa: bigint;
        interCRateMantissa: bigint;
        interSuRateMantissa: bigint;
        exist: boolean;
    };
}
export declare namespace IAccountLiquidity {
    type AccountGroupLocalVarsStruct = {
        groupId: BigNumberish;
        cDepositVal: BigNumberish;
        cBorrowVal: BigNumberish;
        suDepositVal: BigNumberish;
        suBorrowVal: BigNumberish;
        intraCRate: ExpStruct;
        intraMintRate: ExpStruct;
        intraSuRate: ExpStruct;
        interCRate: ExpStruct;
        interSuRate: ExpStruct;
    };
    type AccountGroupLocalVarsStructOutput = [
        groupId: bigint,
        cDepositVal: bigint,
        cBorrowVal: bigint,
        suDepositVal: bigint,
        suBorrowVal: bigint,
        intraCRate: ExpStructOutput,
        intraMintRate: ExpStructOutput,
        intraSuRate: ExpStructOutput,
        interCRate: ExpStructOutput,
        interSuRate: ExpStructOutput
    ] & {
        groupId: bigint;
        cDepositVal: bigint;
        cBorrowVal: bigint;
        suDepositVal: bigint;
        suBorrowVal: bigint;
        intraCRate: ExpStructOutput;
        intraMintRate: ExpStructOutput;
        intraSuRate: ExpStructOutput;
        interCRate: ExpStructOutput;
        interSuRate: ExpStructOutput;
    };
}
export interface ComptrollerInterface extends Interface {
    getFunction(nameOrSignature: "CAPPER_ROLE" | "COMP_LOGIC" | "DEFAULT_ADMIN_ROLE" | "PAUSER_ROLE" | "_borrowGuardianPaused" | "_getBorrowCapGuardian" | "_getBorrowPaused" | "_getMarketBorrowCap" | "_getMintPaused" | "_getPauseGuardian" | "_getSeizePaused" | "_getTransferPaused" | "_mintGuardianPaused" | "_setBorrowCapGuardian" | "_setBorrowPaused" | "_setCloseFactor" | "_setLiquidationIncentive" | "_setMarketBorrowCaps" | "_setMaxSupply" | "_setMintPaused" | "_setPauseGuardian" | "_setPriceOracle" | "_setSeizePaused" | "_setTransferPaused" | "_supportMarket" | "accountAssets" | "accountLiquidity" | "allMarkets" | "assetGroupIdToIndex" | "borrowAllowed" | "borrowCapGuardian" | "borrowCaps" | "borrowGuardianPaused" | "checkMembership" | "cleanAssetGroup" | "closeFactorMantissa" | "compLogic" | "enterMarkets" | "eqAssetGroup" | "exitMarket" | "getAccountGroupSummary" | "getAccountGroupVars" | "getAccountIntermediateGroupSummary" | "getAccountLiquidity" | "getAccountSafeLimit" | "getAllAssetGroup" | "getAllAssetGroupByIndex" | "getAllMarkets" | "getAssetGroup" | "getAssetGroupNum" | "getAssetsIn" | "getCompAddress" | "getHypotheticalAccountLiquidity" | "getRoleAdmin" | "getRoleMember" | "getRoleMemberCount" | "governanceToken" | "grantRole" | "hasRole" | "heteroLiquidationIncentiveMantissa" | "homoLiquidationIncentiveMantissa" | "initialize" | "isComptroller" | "isListed" | "liquidationIncentiveMantissa" | "marketGroupId" | "markets" | "maxSupply" | "mintAllowed" | "mintGuardianPaused" | "oracle" | "pauseGuardian" | "redeemAllowed" | "redeemVerify" | "removeAssetGroup" | "renounceRole" | "repayBorrowAllowed" | "revokeRole" | "seizeAllowed" | "seizeGuardianPaused" | "setAccountLiquidity" | "setAssetGroup" | "setCompLogic" | "setCompSpeed" | "setGovTokenAddress" | "setTimelock" | "suTokenRateMantissa" | "supportsInterface" | "sutokenLiquidationIncentiveMantissa" | "timelock" | "transferAllowed" | "transferGuardianPaused"): FunctionFragment;
    getEvent(nameOrSignatureOrTopic: "ActionPaused" | "Initialized" | "MarketEntered" | "MarketExited" | "MarketListed" | "NewAssetGroup" | "NewBorrowCap" | "NewBorrowCapGuardian" | "NewCloseFactor" | "NewLiquidationIncentive" | "NewPauseGuardian" | "NewPriceOracle" | "RemoveAssetGroup" | "RoleAdminChanged" | "RoleGranted" | "RoleRevoked" | "SetMaxSupply"): EventFragment;
    encodeFunctionData(functionFragment: "CAPPER_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "COMP_LOGIC", values?: undefined): string;
    encodeFunctionData(functionFragment: "DEFAULT_ADMIN_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "PAUSER_ROLE", values?: undefined): string;
    encodeFunctionData(functionFragment: "_borrowGuardianPaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "_getBorrowCapGuardian", values?: undefined): string;
    encodeFunctionData(functionFragment: "_getBorrowPaused", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "_getMarketBorrowCap", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "_getMintPaused", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "_getPauseGuardian", values?: undefined): string;
    encodeFunctionData(functionFragment: "_getSeizePaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "_getTransferPaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "_mintGuardianPaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "_setBorrowCapGuardian", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "_setBorrowPaused", values: [AddressLike, boolean]): string;
    encodeFunctionData(functionFragment: "_setCloseFactor", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "_setLiquidationIncentive", values: [BigNumberish, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "_setMarketBorrowCaps", values: [AddressLike[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "_setMaxSupply", values: [AddressLike[], BigNumberish[]]): string;
    encodeFunctionData(functionFragment: "_setMintPaused", values: [AddressLike, boolean]): string;
    encodeFunctionData(functionFragment: "_setPauseGuardian", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "_setPriceOracle", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "_setSeizePaused", values: [boolean]): string;
    encodeFunctionData(functionFragment: "_setTransferPaused", values: [boolean]): string;
    encodeFunctionData(functionFragment: "_supportMarket", values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "accountAssets", values: [AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "accountLiquidity", values?: undefined): string;
    encodeFunctionData(functionFragment: "allMarkets", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "assetGroupIdToIndex", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "borrowAllowed", values: [AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "borrowCapGuardian", values?: undefined): string;
    encodeFunctionData(functionFragment: "borrowCaps", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "borrowGuardianPaused", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "checkMembership", values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "cleanAssetGroup", values?: undefined): string;
    encodeFunctionData(functionFragment: "closeFactorMantissa", values?: undefined): string;
    encodeFunctionData(functionFragment: "compLogic", values?: undefined): string;
    encodeFunctionData(functionFragment: "enterMarkets", values: [AddressLike[]]): string;
    encodeFunctionData(functionFragment: "eqAssetGroup", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "exitMarket", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "getAccountGroupSummary", values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "getAccountGroupVars", values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "getAccountIntermediateGroupSummary", values: [AddressLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "getAccountLiquidity", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "getAccountSafeLimit", values: [AddressLike, AddressLike, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getAllAssetGroup", values?: undefined): string;
    encodeFunctionData(functionFragment: "getAllAssetGroupByIndex", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getAllMarkets", values?: undefined): string;
    encodeFunctionData(functionFragment: "getAssetGroup", values: [BigNumberish]): string;
    encodeFunctionData(functionFragment: "getAssetGroupNum", values?: undefined): string;
    encodeFunctionData(functionFragment: "getAssetsIn", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "getCompAddress", values?: undefined): string;
    encodeFunctionData(functionFragment: "getHypotheticalAccountLiquidity", values: [AddressLike, AddressLike, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getRoleAdmin", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "getRoleMember", values: [BytesLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "getRoleMemberCount", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "governanceToken", values?: undefined): string;
    encodeFunctionData(functionFragment: "grantRole", values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "hasRole", values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "heteroLiquidationIncentiveMantissa", values?: undefined): string;
    encodeFunctionData(functionFragment: "homoLiquidationIncentiveMantissa", values?: undefined): string;
    encodeFunctionData(functionFragment: "initialize", values: [
        AddressLike,
        AddressLike,
        AddressLike,
        AddressLike,
        AddressLike,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "isComptroller", values?: undefined): string;
    encodeFunctionData(functionFragment: "isListed", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "liquidationIncentiveMantissa", values?: undefined): string;
    encodeFunctionData(functionFragment: "marketGroupId", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "markets", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "maxSupply", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "mintAllowed", values: [AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "mintGuardianPaused", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "oracle", values?: undefined): string;
    encodeFunctionData(functionFragment: "pauseGuardian", values?: undefined): string;
    encodeFunctionData(functionFragment: "redeemAllowed", values: [AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "redeemVerify", values: [AddressLike, AddressLike, BigNumberish, BigNumberish]): 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: "revokeRole", values: [BytesLike, AddressLike]): string;
    encodeFunctionData(functionFragment: "seizeAllowed", values: [AddressLike, AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "seizeGuardianPaused", values?: undefined): string;
    encodeFunctionData(functionFragment: "setAccountLiquidity", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "setAssetGroup", values: [
        BigNumberish,
        string,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish,
        BigNumberish
    ]): string;
    encodeFunctionData(functionFragment: "setCompLogic", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "setCompSpeed", values: [AddressLike, BigNumberish, BigNumberish]): string;
    encodeFunctionData(functionFragment: "setGovTokenAddress", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "setTimelock", values: [AddressLike]): string;
    encodeFunctionData(functionFragment: "suTokenRateMantissa", values?: undefined): string;
    encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string;
    encodeFunctionData(functionFragment: "sutokenLiquidationIncentiveMantissa", values?: undefined): string;
    encodeFunctionData(functionFragment: "timelock", values?: undefined): string;
    encodeFunctionData(functionFragment: "transferAllowed", values: [AddressLike, AddressLike, AddressLike, BigNumberish]): string;
    encodeFunctionData(functionFragment: "transferGuardianPaused", values?: undefined): string;
    decodeFunctionResult(functionFragment: "CAPPER_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "COMP_LOGIC", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "DEFAULT_ADMIN_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "PAUSER_ROLE", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_borrowGuardianPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_getBorrowCapGuardian", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_getBorrowPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_getMarketBorrowCap", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_getMintPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_getPauseGuardian", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_getSeizePaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_getTransferPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_mintGuardianPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setBorrowCapGuardian", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setBorrowPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setCloseFactor", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setLiquidationIncentive", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setMarketBorrowCaps", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setMaxSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setMintPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setPauseGuardian", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setPriceOracle", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setSeizePaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_setTransferPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "_supportMarket", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "accountAssets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "accountLiquidity", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "allMarkets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "assetGroupIdToIndex", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowCapGuardian", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowCaps", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "borrowGuardianPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "checkMembership", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "cleanAssetGroup", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "closeFactorMantissa", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "compLogic", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "enterMarkets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "eqAssetGroup", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "exitMarket", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAccountGroupSummary", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAccountGroupVars", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAccountIntermediateGroupSummary", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAccountLiquidity", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAccountSafeLimit", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAllAssetGroup", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAllAssetGroupByIndex", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAllMarkets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAssetGroup", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAssetGroupNum", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getAssetsIn", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getCompAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getHypotheticalAccountLiquidity", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleAdmin", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleMember", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "getRoleMemberCount", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "governanceToken", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "heteroLiquidationIncentiveMantissa", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "homoLiquidationIncentiveMantissa", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isComptroller", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "isListed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "liquidationIncentiveMantissa", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "marketGroupId", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "markets", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "maxSupply", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "mintGuardianPaused", 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: "removeAssetGroup", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "renounceRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "repayBorrowAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "seizeAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "seizeGuardianPaused", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setAccountLiquidity", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setAssetGroup", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setCompLogic", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setCompSpeed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setGovTokenAddress", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "setTimelock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "suTokenRateMantissa", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "sutokenLiquidationIncentiveMantissa", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "timelock", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferAllowed", data: BytesLike): Result;
    decodeFunctionResult(functionFragment: "transferGuardianPaused", 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 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 NewAssetGroupEvent {
    type InputTuple = [
        groupId: BigNumberish,
        groupName: string,
        intraCRateMantissa: BigNumberish,
        intraMintRateMantissa: BigNumberish,
        intraSuRateMantissa: BigNumberish,
        interCRateMantissa: BigNumberish,
        interSuRateMantissa: BigNumberish,
        assetsGroupNum: BigNumberish
    ];
    type OutputTuple = [
        groupId: bigint,
        groupName: string,
        intraCRateMantissa: bigint,
        intraMintRateMantissa: bigint,
        intraSuRateMantissa: bigint,
        interCRateMantissa: bigint,
        interSuRateMantissa: bigint,
        assetsGroupNum: bigint
    ];
    interface OutputObject {
        groupId: bigint;
        groupName: string;
        intraCRateMantissa: bigint;
        intraMintRateMantissa: bigint;
        intraSuRateMantissa: bigint;
        interCRateMantissa: bigint;
        interSuRateMantissa: bigint;
        assetsGroupNum: bigint;
    }
    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 NewCloseFactorEvent {
    type InputTuple = [
        oldCloseFactorMantissa: BigNumberish,
        newCloseFactorMantissa: BigNumberish
    ];
    type OutputTuple = [
        oldCloseFactorMantissa: bigint,
        newCloseFactorMantissa: bigint
    ];
    interface OutputObject {
        oldCloseFactorMantissa: bigint;
        newCloseFactorMantissa: 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 = [
        oldHeteroIncentive: BigNumberish,
        newHeteroIncentive: BigNumberish,
        oldHomoIncentive: BigNumberish,
        newHomoIncentive: BigNumberish,
        oldSutokenIncentive: BigNumberish,
        newSutokenIncentive: BigNumberish
    ];
    type OutputTuple = [
        oldHeteroIncentive: bigint,
        newHeteroIncentive: bigint,
        oldHomoIncentive: bigint,
        newHomoIncentive: bigint,
        oldSutokenIncentive: bigint,
        newSutokenIncentive: bigint
    ];
    interface OutputObject {
        oldHeteroIncentive: bigint;
        newHeteroIncentive: bigint;
        oldHomoIncentive: bigint;
        newHomoIncentive: bigint;
        oldSutokenIncentive: bigint;
        newSutokenIncentive: bigint;
    }
    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 = [
        oldPriceOracle: AddressLike,
        newPriceOracle: AddressLike
    ];
    type OutputTuple = [oldPriceOracle: string, newPriceOracle: string];
    interface OutputObject {
        oldPriceOracle: string;
        newPriceOracle: 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 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 SetMaxSupplyEvent {
    type InputTuple = [cToken: AddressLike, amount: BigNumberish];
    type OutputTuple = [cToken: string, amount: bigint];
    interface OutputObject {
        cToken: string;
        amount: bigint;
    }
    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>;
    CAPPER_ROLE: TypedContractMethod<[], [string], "view">;
    COMP_LOGIC: TypedContractMethod<[], [string], "view">;
    DEFAULT_ADMIN_ROLE: TypedContractMethod<[], [string], "view">;
    PAUSER_ROLE: TypedContractMethod<[], [string], "view">;
    _borrowGuardianPaused: TypedContractMethod<[], [boolean], "view">;
    _getBorrowCapGuardian: TypedContractMethod<[], [string], "view">;
    _getBorrowPaused: TypedContractMethod<[
        cToken: AddressLike
    ], [
        boolean
    ], "view">;
    _getMarketBorrowCap: TypedContractMethod<[
        cToken: AddressLike
    ], [
        bigint
    ], "view">;
    _getMintPaused: TypedContractMethod<[cToken: AddressLike], [boolean], "view">;
    _getPauseGuardian: TypedContractMethod<[], [string], "view">;
    _getSeizePaused: TypedContractMethod<[], [boolean], "view">;
    _getTransferPaused: TypedContractMethod<[], [boolean], "view">;
    _mintGuardianPaused: TypedContractMethod<[], [boolean], "view">;
    _setBorrowCapGuardian: TypedContractMethod<[
        newBorrowCapGuardian: AddressLike
    ], [
        void
    ], "nonpayable">;
    _setBorrowPaused: TypedContractMethod<[
        cToken: AddressLike,
        state: boolean
    ], [
        boolean
    ], "nonpayable">;
    _setCloseFactor: TypedContractMethod<[
        newCloseFactorMantissa: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    _setLiquidationIncentive: TypedContractMethod<[
        newHeteroLiquidationIncentiveMantissa: BigNumberish,
        newHomoLiquidationIncentiveMantissa: BigNumberish,
        newSutokenLiquidationIncentiveMantissa: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    _setMarketBorrowCaps: TypedContractMethod<[
        cTokens: AddressLike[],
        newBorrowCaps: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    _setMaxSupply: TypedContractMethod<[
        cTokens: AddressLike[],
        newMaxSupplys: BigNumberish[]
    ], [
        bigint
    ], "nonpayable">;
    _setMintPaused: TypedContractMethod<[
        cToken: AddressLike,
        state: boolean
    ], [
        boolean
    ], "nonpayable">;
    _setPauseGuardian: TypedContractMethod<[
        newPauseGuardian: AddressLike
    ], [
        bigint
    ], "nonpayable">;
    _setPriceOracle: TypedContractMethod<[
        newOracle: AddressLike
    ], [
        bigint
    ], "nonpayable">;
    _setSeizePaused: TypedContractMethod<[
        state: boolean
    ], [
        boolean
    ], "nonpayable">;
    _setTransferPaused: TypedContractMethod<[
        state: boolean
    ], [
        boolean
    ], "nonpayable">;
    _supportMarket: TypedContractMethod<[
        cToken: AddressLike,
        groupId: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    accountAssets: TypedContractMethod<[
        arg0: AddressLike,
        arg1: BigNumberish
    ], [
        string
    ], "view">;
    accountLiquidity: TypedContractMethod<[], [string], "view">;
    allMarkets: TypedContractMethod<[arg0: BigNumberish], [string], "view">;
    assetGroupIdToIndex: TypedContractMethod<[
        arg0: BigNumberish
    ], [
        bigint
    ], "view">;
    borrowAllowed: TypedContractMethod<[
        cToken: AddressLike,
        borrower: AddressLike,
        borrowAmount: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    borrowCapGuardian: TypedContractMethod<[], [string], "view">;
    borrowCaps: TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
    borrowGuardianPaused: TypedContractMethod<[
        arg0: AddressLike
    ], [
        boolean
    ], "view">;
    checkMembership: TypedContractMethod<[
        account: AddressLike,
        cToken: AddressLike
    ], [
        boolean
    ], "view">;
    cleanAssetGroup: TypedContractMethod<[], [void], "nonpayable">;
    closeFactorMantissa: TypedContractMethod<[], [bigint], "view">;
    compLogic: TypedContractMethod<[], [string], "view">;
    enterMarkets: TypedContractMethod<[
        cTokens: AddressLike[]
    ], [
        bigint[]
    ], "nonpayable">;
    eqAssetGroup: TypedContractMethod<[
        groupId: BigNumberish
    ], [
        IComptroller.AssetGroupStructOutput
    ], "view">;
    exitMarket: TypedContractMethod<[
        cTokenAddress: AddressLike
    ], [
        bigint
    ], "nonpayable">;
    getAccountGroupSummary: TypedContractMethod<[
        account: AddressLike,
        cTokenTarget: AddressLike
    ], [
        [bigint, bigint, IAccountLiquidity.AccountGroupLocalVarsStructOutput]
    ], "view">;
    getAccountGroupVars: TypedContractMethod<[
        account: AddressLike,
        cTokenTarget: AddressLike
    ], [
        IAccountLiquidity.AccountGroupLocalVarsStructOutput[]
    ], "view">;
    getAccountIntermediateGroupSummary: TypedContractMethod<[
        account: AddressLike,
        cTokenTarget: AddressLike
    ], [
        [bigint, bigint, IAccountLiquidity.AccountGroupLocalVarsStructOutput]
    ], "view">;
    getAccountLiquidity: TypedContractMethod<[
        account: AddressLike
    ], [
        [bigint, bigint, bigint]
    ], "view">;
    getAccountSafeLimit: TypedContractMethod<[
        account: AddressLike,
        cTokenTarget: AddressLike,
        intraSafeLimitMantissa: BigNumberish,
        interSafeLimitMantissa: BigNumberish
    ], [
        bigint
    ], "view">;
    getAllAssetGroup: TypedContractMethod<[
    ], [
        IComptroller.AssetGroupStructOutput[]
    ], "view">;
    getAllAssetGroupByIndex: TypedContractMethod<[
        groupIndex: BigNumberish
    ], [
        IComptroller.AssetGroupStructOutput
    ], "view">;
    getAllMarkets: TypedContractMethod<[], [string[]], "view">;
    getAssetGroup: TypedContractMethod<[
        groupId: BigNumberish
    ], [
        IComptroller.AssetGroupStructOutput
    ], "view">;
    getAssetGroupNum: TypedContractMethod<[], [bigint], "view">;
    getAssetsIn: TypedContractMethod<[account: AddressLike], [string[]], "view">;
    getCompAddress: TypedContractMethod<[], [string], "view">;
    getHypotheticalAccountLiquidity: TypedContractMethod<[
        account: AddressLike,
        cTokenModify: AddressLike,
        redeemTokens: BigNumberish,
        borrowAmount: BigNumberish
    ], [
        [bigint, bigint, bigint]
    ], "view">;
    getRoleAdmin: TypedContractMethod<[role: BytesLike], [string], "view">;
    getRoleMember: TypedContractMethod<[
        role: BytesLike,
        index: BigNumberish
    ], [
        string
    ], "view">;
    getRoleMemberCount: TypedContractMethod<[role: BytesLike], [bigint], "view">;
    governanceToken: TypedContractMethod<[], [string], "view">;
    grantRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    hasRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        boolean
    ], "view">;
    heteroLiquidationIncentiveMantissa: TypedContractMethod<[], [bigint], "view">;
    homoLiquidationIncentiveMantissa: TypedContractMethod<[], [bigint], "view">;
    initialize: TypedContractMethod<[
        _admin: AddressLike,
        _oracle: AddressLike,
        _gov: AddressLike,
        _compLogic: AddressLike,
        _accountLiquidity: AddressLike,
        _closeFactorMantissa: BigNumberish,
        _heteroLiquidationIncentiveMantissa: BigNumberish,
        _homoLiquidationIncentiveMantissa: BigNumberish,
        _sutokenLiquidationIncentiveMantissa: BigNumberish
    ], [
        void
    ], "nonpayable">;
    isComptroller: TypedContractMethod<[], [boolean], "view">;
    isListed: TypedContractMethod<[asset: AddressLike], [boolean], "view">;
    liquidationIncentiveMantissa: TypedContractMethod<[
    ], [
        [bigint, bigint, bigint]
    ], "view">;
    marketGroupId: TypedContractMethod<[asset: AddressLike], [bigint], "view">;
    markets: TypedContractMethod<[
        arg0: AddressLike
    ], [
        [
            boolean,
            bigint,
            boolean
        ] & {
            isListed: boolean;
            assetGroupId: bigint;
            isComped: boolean;
        }
    ], "view">;
    maxSupply: TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
    mintAllowed: TypedContractMethod<[
        cToken: AddressLike,
        minter: AddressLike,
        mintAmount: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    mintGuardianPaused: TypedContractMethod<[
        arg0: AddressLike
    ], [
        boolean
    ], "view">;
    oracle: TypedContractMethod<[], [string], "view">;
    pauseGuardian: TypedContractMethod<[], [string], "view">;
    redeemAllowed: TypedContractMethod<[
        cToken: AddressLike,
        redeemer: AddressLike,
        redeemTokens: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    redeemVerify: TypedContractMethod<[
        cToken: AddressLike,
        redeemer: AddressLike,
        redeemAmount: BigNumberish,
        redeemTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    removeAssetGroup: TypedContractMethod<[
        groupId: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    renounceRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    repayBorrowAllowed: TypedContractMethod<[
        cToken: AddressLike,
        payer: AddressLike,
        borrower: AddressLike,
        repayAmount: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    revokeRole: TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    seizeAllowed: TypedContractMethod<[
        cTokenCollateral: AddressLike,
        cTokenBorrowed: AddressLike,
        liquidator: AddressLike,
        borrower: AddressLike,
        seizeTokens: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    seizeGuardianPaused: TypedContractMethod<[], [boolean], "view">;
    setAccountLiquidity: TypedContractMethod<[
        _accountLiquidity: AddressLike
    ], [
        void
    ], "nonpayable">;
    setAssetGroup: TypedContractMethod<[
        groupId: BigNumberish,
        groupName: string,
        intraCRateMantissa: BigNumberish,
        intraMintRateMantissa: BigNumberish,
        intraSuRateMantissa: BigNumberish,
        interCRateMantissa: BigNumberish,
        interSuRateMantissa: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    setCompLogic: TypedContractMethod<[
        _compLogic: AddressLike
    ], [
        void
    ], "nonpayable">;
    setCompSpeed: TypedContractMethod<[
        cToken: AddressLike,
        supplySpeed: BigNumberish,
        borrowSpeed: BigNumberish
    ], [
        void
    ], "nonpayable">;
    setGovTokenAddress: TypedContractMethod<[
        _governanceToken: AddressLike
    ], [
        void
    ], "nonpayable">;
    setTimelock: TypedContractMethod<[
        _timelock: AddressLike
    ], [
        void
    ], "nonpayable">;
    suTokenRateMantissa: TypedContractMethod<[], [bigint], "view">;
    supportsInterface: TypedContractMethod<[
        interfaceId: BytesLike
    ], [
        boolean
    ], "view">;
    sutokenLiquidationIncentiveMantissa: TypedContractMethod<[
    ], [
        bigint
    ], "view">;
    timelock: TypedContractMethod<[], [string], "view">;
    transferAllowed: TypedContractMethod<[
        cToken: AddressLike,
        src: AddressLike,
        dst: AddressLike,
        transferTokens: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    transferGuardianPaused: TypedContractMethod<[], [boolean], "view">;
    getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
    getFunction(nameOrSignature: "CAPPER_ROLE"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "COMP_LOGIC"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "DEFAULT_ADMIN_ROLE"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "PAUSER_ROLE"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "_borrowGuardianPaused"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "_getBorrowCapGuardian"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "_getBorrowPaused"): TypedContractMethod<[cToken: AddressLike], [boolean], "view">;
    getFunction(nameOrSignature: "_getMarketBorrowCap"): TypedContractMethod<[cToken: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "_getMintPaused"): TypedContractMethod<[cToken: AddressLike], [boolean], "view">;
    getFunction(nameOrSignature: "_getPauseGuardian"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "_getSeizePaused"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "_getTransferPaused"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "_mintGuardianPaused"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "_setBorrowCapGuardian"): TypedContractMethod<[
        newBorrowCapGuardian: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "_setBorrowPaused"): TypedContractMethod<[
        cToken: AddressLike,
        state: boolean
    ], [
        boolean
    ], "nonpayable">;
    getFunction(nameOrSignature: "_setCloseFactor"): TypedContractMethod<[
        newCloseFactorMantissa: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "_setLiquidationIncentive"): TypedContractMethod<[
        newHeteroLiquidationIncentiveMantissa: BigNumberish,
        newHomoLiquidationIncentiveMantissa: BigNumberish,
        newSutokenLiquidationIncentiveMantissa: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "_setMarketBorrowCaps"): TypedContractMethod<[
        cTokens: AddressLike[],
        newBorrowCaps: BigNumberish[]
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "_setMaxSupply"): TypedContractMethod<[
        cTokens: AddressLike[],
        newMaxSupplys: BigNumberish[]
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "_setMintPaused"): TypedContractMethod<[
        cToken: AddressLike,
        state: boolean
    ], [
        boolean
    ], "nonpayable">;
    getFunction(nameOrSignature: "_setPauseGuardian"): TypedContractMethod<[
        newPauseGuardian: AddressLike
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "_setPriceOracle"): TypedContractMethod<[newOracle: AddressLike], [bigint], "nonpayable">;
    getFunction(nameOrSignature: "_setSeizePaused"): TypedContractMethod<[state: boolean], [boolean], "nonpayable">;
    getFunction(nameOrSignature: "_setTransferPaused"): TypedContractMethod<[state: boolean], [boolean], "nonpayable">;
    getFunction(nameOrSignature: "_supportMarket"): TypedContractMethod<[
        cToken: AddressLike,
        groupId: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "accountAssets"): TypedContractMethod<[
        arg0: AddressLike,
        arg1: BigNumberish
    ], [
        string
    ], "view">;
    getFunction(nameOrSignature: "accountLiquidity"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "allMarkets"): TypedContractMethod<[arg0: BigNumberish], [string], "view">;
    getFunction(nameOrSignature: "assetGroupIdToIndex"): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">;
    getFunction(nameOrSignature: "borrowAllowed"): TypedContractMethod<[
        cToken: AddressLike,
        borrower: AddressLike,
        borrowAmount: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "borrowCapGuardian"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "borrowCaps"): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "borrowGuardianPaused"): TypedContractMethod<[arg0: AddressLike], [boolean], "view">;
    getFunction(nameOrSignature: "checkMembership"): TypedContractMethod<[
        account: AddressLike,
        cToken: AddressLike
    ], [
        boolean
    ], "view">;
    getFunction(nameOrSignature: "cleanAssetGroup"): TypedContractMethod<[], [void], "nonpayable">;
    getFunction(nameOrSignature: "closeFactorMantissa"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "compLogic"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "enterMarkets"): TypedContractMethod<[cTokens: AddressLike[]], [bigint[]], "nonpayable">;
    getFunction(nameOrSignature: "eqAssetGroup"): TypedContractMethod<[
        groupId: BigNumberish
    ], [
        IComptroller.AssetGroupStructOutput
    ], "view">;
    getFunction(nameOrSignature: "exitMarket"): TypedContractMethod<[cTokenAddress: AddressLike], [bigint], "nonpayable">;
    getFunction(nameOrSignature: "getAccountGroupSummary"): TypedContractMethod<[
        account: AddressLike,
        cTokenTarget: AddressLike
    ], [
        [bigint, bigint, IAccountLiquidity.AccountGroupLocalVarsStructOutput]
    ], "view">;
    getFunction(nameOrSignature: "getAccountGroupVars"): TypedContractMethod<[
        account: AddressLike,
        cTokenTarget: AddressLike
    ], [
        IAccountLiquidity.AccountGroupLocalVarsStructOutput[]
    ], "view">;
    getFunction(nameOrSignature: "getAccountIntermediateGroupSummary"): TypedContractMethod<[
        account: AddressLike,
        cTokenTarget: AddressLike
    ], [
        [bigint, bigint, IAccountLiquidity.AccountGroupLocalVarsStructOutput]
    ], "view">;
    getFunction(nameOrSignature: "getAccountLiquidity"): TypedContractMethod<[
        account: AddressLike
    ], [
        [bigint, bigint, bigint]
    ], "view">;
    getFunction(nameOrSignature: "getAccountSafeLimit"): TypedContractMethod<[
        account: AddressLike,
        cTokenTarget: AddressLike,
        intraSafeLimitMantissa: BigNumberish,
        interSafeLimitMantissa: BigNumberish
    ], [
        bigint
    ], "view">;
    getFunction(nameOrSignature: "getAllAssetGroup"): TypedContractMethod<[], [IComptroller.AssetGroupStructOutput[]], "view">;
    getFunction(nameOrSignature: "getAllAssetGroupByIndex"): TypedContractMethod<[
        groupIndex: BigNumberish
    ], [
        IComptroller.AssetGroupStructOutput
    ], "view">;
    getFunction(nameOrSignature: "getAllMarkets"): TypedContractMethod<[], [string[]], "view">;
    getFunction(nameOrSignature: "getAssetGroup"): TypedContractMethod<[
        groupId: BigNumberish
    ], [
        IComptroller.AssetGroupStructOutput
    ], "view">;
    getFunction(nameOrSignature: "getAssetGroupNum"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "getAssetsIn"): TypedContractMethod<[account: AddressLike], [string[]], "view">;
    getFunction(nameOrSignature: "getCompAddress"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "getHypotheticalAccountLiquidity"): TypedContractMethod<[
        account: AddressLike,
        cTokenModify: AddressLike,
        redeemTokens: BigNumberish,
        borrowAmount: BigNumberish
    ], [
        [bigint, bigint, bigint]
    ], "view">;
    getFunction(nameOrSignature: "getRoleAdmin"): TypedContractMethod<[role: BytesLike], [string], "view">;
    getFunction(nameOrSignature: "getRoleMember"): TypedContractMethod<[
        role: BytesLike,
        index: BigNumberish
    ], [
        string
    ], "view">;
    getFunction(nameOrSignature: "getRoleMemberCount"): TypedContractMethod<[role: BytesLike], [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: "heteroLiquidationIncentiveMantissa"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "homoLiquidationIncentiveMantissa"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "initialize"): TypedContractMethod<[
        _admin: AddressLike,
        _oracle: AddressLike,
        _gov: AddressLike,
        _compLogic: AddressLike,
        _accountLiquidity: AddressLike,
        _closeFactorMantissa: BigNumberish,
        _heteroLiquidationIncentiveMantissa: BigNumberish,
        _homoLiquidationIncentiveMantissa: BigNumberish,
        _sutokenLiquidationIncentiveMantissa: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "isComptroller"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "isListed"): TypedContractMethod<[asset: AddressLike], [boolean], "view">;
    getFunction(nameOrSignature: "liquidationIncentiveMantissa"): TypedContractMethod<[], [[bigint, bigint, bigint]], "view">;
    getFunction(nameOrSignature: "marketGroupId"): TypedContractMethod<[asset: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "markets"): TypedContractMethod<[
        arg0: AddressLike
    ], [
        [
            boolean,
            bigint,
            boolean
        ] & {
            isListed: boolean;
            assetGroupId: bigint;
            isComped: boolean;
        }
    ], "view">;
    getFunction(nameOrSignature: "maxSupply"): TypedContractMethod<[arg0: AddressLike], [bigint], "view">;
    getFunction(nameOrSignature: "mintAllowed"): TypedContractMethod<[
        cToken: AddressLike,
        minter: AddressLike,
        mintAmount: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "mintGuardianPaused"): TypedContractMethod<[arg0: AddressLike], [boolean], "view">;
    getFunction(nameOrSignature: "oracle"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "pauseGuardian"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "redeemAllowed"): TypedContractMethod<[
        cToken: AddressLike,
        redeemer: AddressLike,
        redeemTokens: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "redeemVerify"): TypedContractMethod<[
        cToken: AddressLike,
        redeemer: AddressLike,
        redeemAmount: BigNumberish,
        redeemTokens: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "removeAssetGroup"): TypedContractMethod<[groupId: BigNumberish], [bigint], "nonpayable">;
    getFunction(nameOrSignature: "renounceRole"): TypedContractMethod<[
        role: BytesLike,
        account: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "repayBorrowAllowed"): TypedContractMethod<[
        cToken: AddressLike,
        payer: AddressLike,
        borrower: AddressLike,
        repayAmount: BigNumberish
    ], [
        bigint
    ], "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
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "seizeGuardianPaused"): TypedContractMethod<[], [boolean], "view">;
    getFunction(nameOrSignature: "setAccountLiquidity"): TypedContractMethod<[
        _accountLiquidity: AddressLike
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setAssetGroup"): TypedContractMethod<[
        groupId: BigNumberish,
        groupName: string,
        intraCRateMantissa: BigNumberish,
        intraMintRateMantissa: BigNumberish,
        intraSuRateMantissa: BigNumberish,
        interCRateMantissa: BigNumberish,
        interSuRateMantissa: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "setCompLogic"): TypedContractMethod<[_compLogic: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "setCompSpeed"): TypedContractMethod<[
        cToken: AddressLike,
        supplySpeed: BigNumberish,
        borrowSpeed: BigNumberish
    ], [
        void
    ], "nonpayable">;
    getFunction(nameOrSignature: "setGovTokenAddress"): TypedContractMethod<[_governanceToken: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "setTimelock"): TypedContractMethod<[_timelock: AddressLike], [void], "nonpayable">;
    getFunction(nameOrSignature: "suTokenRateMantissa"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">;
    getFunction(nameOrSignature: "sutokenLiquidationIncentiveMantissa"): TypedContractMethod<[], [bigint], "view">;
    getFunction(nameOrSignature: "timelock"): TypedContractMethod<[], [string], "view">;
    getFunction(nameOrSignature: "transferAllowed"): TypedContractMethod<[
        cToken: AddressLike,
        src: AddressLike,
        dst: AddressLike,
        transferTokens: BigNumberish
    ], [
        bigint
    ], "nonpayable">;
    getFunction(nameOrSignature: "transferGuardianPaused"): TypedContractMethod<[], [boolean], "view">;
    getEvent(key: "ActionPaused"): TypedContractEvent<ActionPausedEvent.InputTuple, ActionPausedEvent.OutputTuple, ActionPausedEvent.OutputObject>;
    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: "NewAssetGroup"): TypedContractEvent<NewAssetGroupEvent.InputTuple, NewAssetGroupEvent.OutputTuple, NewAssetGroupEvent.OutputObject>;
    getEvent(key: "NewBorrowCap"): TypedContractEvent<NewBorrowCapEvent.InputTuple, NewBorrowCapEvent.OutputTuple, NewBorrowCapEvent.OutputObject>;
    getEvent(key: "NewBorrowCapGuardian"): TypedContractEvent<NewBorrowCapGuardianEvent.InputTuple, NewBorrowCapGuardianEvent.OutputTuple, NewBorrowCapGuardianEvent.OutputObject>;
    getEvent(key: "NewCloseFactor"): TypedContractEvent<NewCloseFactorEvent.InputTuple, NewCloseFactorEvent.OutputTuple, NewCloseFactorEvent.OutputObject>;
    getEvent(key: "NewLiquidationIncentive"): TypedContractEvent<NewLiquidationIncentiveEvent.InputTuple, NewLiquidationIncentiveEvent.OutputTuple, NewLiquidationIncentiveEvent.OutputObject>;
    getEvent(key: "NewPauseGuardian"): TypedContractEvent<NewPauseGuardianEvent.InputTuple, NewPauseGuardianEvent.OutputTuple, NewPauseGuardianEvent.OutputObject>;
    getEvent(key: "NewPriceOracle"): TypedContractEvent<NewPriceOracleEvent.InputTuple, NewPriceOracleEvent.OutputTuple, NewPriceOracleEvent.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: "SetMaxSupply"): TypedContractEvent<SetMaxSupplyEvent.InputTuple, SetMaxSupplyEvent.OutputTuple, SetMaxSupplyEvent.OutputObject>;
    filters: {
        "ActionPaused(address,string,bool)": TypedContractEvent<ActionPausedEvent.InputTuple, ActionPausedEvent.OutputTuple, ActionPausedEvent.OutputObject>;
        ActionPaused: TypedContractEvent<ActionPausedEvent.InputTuple, ActionPausedEvent.OutputTuple, ActionPausedEvent.OutputObject>;
        "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>;
        "NewAssetGroup(uint8,string,uint256,uint256,uint256,uint256,uint256,uint8)": TypedContractEvent<NewAssetGroupEvent.InputTuple, NewAssetGroupEvent.OutputTuple, NewAssetGroupEvent.OutputObject>;
        NewAssetGroup: TypedContractEvent<NewAssetGroupEvent.InputTuple, NewAssetGroupEvent.OutputTuple, NewAssetGroupEvent.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>;
        "NewCloseFactor(uint256,uint256)": TypedContractEvent<NewCloseFactorEvent.InputTuple, NewCloseFactorEvent.OutputTuple, NewCloseFactorEvent.OutputObject>;
        NewCloseFactor: TypedContractEvent<NewCloseFactorEvent.InputTuple, NewCloseFactorEvent.OutputTuple, NewCloseFactorEvent.OutputObject>;
        "NewLiquidationIncentive(uint256,uint256,uint256,uint256,uint256,uint256)": TypedContractEvent<NewLiquidationIncentiveEvent.InputTuple, NewLiquidationIncentiveEvent.OutputTuple, NewLiquidationIncentiveEvent.OutputObject>;
        NewLiquidationIncentive: TypedContractEvent<NewLiquidationIncentiveEvent.InputTuple, NewLiquidationIncentiveEvent.OutputTuple, NewLiquidationIncentiveEvent.OutputObject>;
        "NewPauseGuardian(address,address)": TypedContractEvent<NewPauseGuardianEvent.InputTuple, NewPauseGuardianEvent.OutputTuple, NewPauseGuardianEvent.OutputObject>;
        NewPauseGuardian: TypedContractEvent<NewPauseGuardianEvent.InputTuple, NewPauseGuardianEvent.OutputTuple, NewPauseGuardianEvent.OutputObject>;
        "NewPriceOracle(address,address)": TypedContractEvent<NewPriceOracleEvent.InputTuple, NewPriceOracleEvent.OutputTuple, NewPriceOracleEvent.OutputObject>;
        NewPriceOracle: TypedContractEvent<NewPriceOracleEvent.InputTuple, NewPriceOracleEvent.OutputTuple, NewPriceOracleEvent.OutputObject>;
        "RemoveAssetGroup(uint8,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>;
        "SetMaxSupply(address,uint256)": TypedContractEvent<SetMaxSupplyEvent.InputTuple, SetMaxSupplyEvent.OutputTuple, SetMaxSupplyEvent.OutputObject>;
        SetMaxSupply: TypedContractEvent<SetMaxSupplyEvent.InputTuple, SetMaxSupplyEvent.OutputTuple, SetMaxSupplyEvent.OutputObject>;
    };
}
