import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../common"; export declare namespace CometConfiguration { type AssetConfigStruct = { asset: AddressLike; priceFeed: AddressLike; decimals: BigNumberish; borrowCollateralFactor: BigNumberish; liquidateCollateralFactor: BigNumberish; liquidationFactor: BigNumberish; supplyCap: BigNumberish; }; type AssetConfigStructOutput = [ asset: string, priceFeed: string, decimals: bigint, borrowCollateralFactor: bigint, liquidateCollateralFactor: bigint, liquidationFactor: bigint, supplyCap: bigint ] & { asset: string; priceFeed: string; decimals: bigint; borrowCollateralFactor: bigint; liquidateCollateralFactor: bigint; liquidationFactor: bigint; supplyCap: bigint; }; type ConfigurationStruct = { governor: AddressLike; pauseGuardian: AddressLike; baseToken: AddressLike; baseTokenPriceFeed: AddressLike; extensionDelegate: AddressLike; supplyKink: BigNumberish; supplyPerYearInterestRateSlopeLow: BigNumberish; supplyPerYearInterestRateSlopeHigh: BigNumberish; supplyPerYearInterestRateBase: BigNumberish; borrowKink: BigNumberish; borrowPerYearInterestRateSlopeLow: BigNumberish; borrowPerYearInterestRateSlopeHigh: BigNumberish; borrowPerYearInterestRateBase: BigNumberish; storeFrontPriceFactor: BigNumberish; trackingIndexScale: BigNumberish; baseTrackingSupplySpeed: BigNumberish; baseTrackingBorrowSpeed: BigNumberish; baseMinForRewards: BigNumberish; baseBorrowMin: BigNumberish; targetReserves: BigNumberish; assetConfigs: CometConfiguration.AssetConfigStruct[]; }; type ConfigurationStructOutput = [ governor: string, pauseGuardian: string, baseToken: string, baseTokenPriceFeed: string, extensionDelegate: string, supplyKink: bigint, supplyPerYearInterestRateSlopeLow: bigint, supplyPerYearInterestRateSlopeHigh: bigint, supplyPerYearInterestRateBase: bigint, borrowKink: bigint, borrowPerYearInterestRateSlopeLow: bigint, borrowPerYearInterestRateSlopeHigh: bigint, borrowPerYearInterestRateBase: bigint, storeFrontPriceFactor: bigint, trackingIndexScale: bigint, baseTrackingSupplySpeed: bigint, baseTrackingBorrowSpeed: bigint, baseMinForRewards: bigint, baseBorrowMin: bigint, targetReserves: bigint, assetConfigs: CometConfiguration.AssetConfigStructOutput[] ] & { governor: string; pauseGuardian: string; baseToken: string; baseTokenPriceFeed: string; extensionDelegate: string; supplyKink: bigint; supplyPerYearInterestRateSlopeLow: bigint; supplyPerYearInterestRateSlopeHigh: bigint; supplyPerYearInterestRateBase: bigint; borrowKink: bigint; borrowPerYearInterestRateSlopeLow: bigint; borrowPerYearInterestRateSlopeHigh: bigint; borrowPerYearInterestRateBase: bigint; storeFrontPriceFactor: bigint; trackingIndexScale: bigint; baseTrackingSupplySpeed: bigint; baseTrackingBorrowSpeed: bigint; baseMinForRewards: bigint; baseBorrowMin: bigint; targetReserves: bigint; assetConfigs: CometConfiguration.AssetConfigStructOutput[]; }; } export interface CometFactoryInterface extends Interface { getFunction(nameOrSignature: "clone"): FunctionFragment; encodeFunctionData(functionFragment: "clone", values: [CometConfiguration.ConfigurationStruct]): string; decodeFunctionResult(functionFragment: "clone", data: BytesLike): Result; } export interface CometFactory extends BaseContract { connect(runner?: ContractRunner | null): CometFactory; waitForDeployment(): Promise; interface: CometFactoryInterface; queryFilter(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; queryFilter(filter: TypedDeferredTopicFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>>; on(event: TCEvent, listener: TypedListener): Promise; on(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; once(event: TCEvent, listener: TypedListener): Promise; once(filter: TypedDeferredTopicFilter, listener: TypedListener): Promise; listeners(event: TCEvent): Promise>>; listeners(eventName?: string): Promise>; removeAllListeners(event?: TCEvent): Promise; clone: TypedContractMethod<[ config: CometConfiguration.ConfigurationStruct ], [ string ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "clone"): TypedContractMethod<[ config: CometConfiguration.ConfigurationStruct ], [ string ], "nonpayable">; filters: {}; }