import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common"; export declare namespace IPoolFactory { type PoolKeyStruct = { base: AddressLike; quote: AddressLike; oracleAdapter: AddressLike; strike: BigNumberish; maturity: BigNumberish; isCallPool: boolean; }; type PoolKeyStructOutput = [ base: string, quote: string, oracleAdapter: string, strike: bigint, maturity: bigint, isCallPool: boolean ] & { base: string; quote: string; oracleAdapter: string; strike: bigint; maturity: bigint; isCallPool: boolean; }; } export interface IPoolFactoryInterface extends Interface { getFunction(nameOrSignature: "deployPool" | "getPoolAddress" | "initializationFee" | "isPool"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "PoolDeployed" | "PricingPath"): EventFragment; encodeFunctionData(functionFragment: "deployPool", values: [IPoolFactory.PoolKeyStruct]): string; encodeFunctionData(functionFragment: "getPoolAddress", values: [IPoolFactory.PoolKeyStruct]): string; encodeFunctionData(functionFragment: "initializationFee", values: [IPoolFactory.PoolKeyStruct]): string; encodeFunctionData(functionFragment: "isPool", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "deployPool", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPoolAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "initializationFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isPool", data: BytesLike): Result; } export declare namespace PoolDeployedEvent { type InputTuple = [ base: AddressLike, quote: AddressLike, oracleAdapter: AddressLike, strike: BigNumberish, maturity: BigNumberish, isCallPool: boolean, poolAddress: AddressLike ]; type OutputTuple = [ base: string, quote: string, oracleAdapter: string, strike: bigint, maturity: bigint, isCallPool: boolean, poolAddress: string ]; interface OutputObject { base: string; quote: string; oracleAdapter: string; strike: bigint; maturity: bigint; isCallPool: boolean; poolAddress: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PricingPathEvent { type InputTuple = [ pool: AddressLike, basePath: AddressLike[][], basePathDecimals: BigNumberish[], baseAdapterType: BigNumberish, quotePath: AddressLike[][], quotePathDecimals: BigNumberish[], quoteAdapterType: BigNumberish ]; type OutputTuple = [ pool: string, basePath: string[][], basePathDecimals: bigint[], baseAdapterType: bigint, quotePath: string[][], quotePathDecimals: bigint[], quoteAdapterType: bigint ]; interface OutputObject { pool: string; basePath: string[][]; basePathDecimals: bigint[]; baseAdapterType: bigint; quotePath: string[][]; quotePathDecimals: bigint[]; quoteAdapterType: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IPoolFactory extends BaseContract { connect(runner?: ContractRunner | null): IPoolFactory; waitForDeployment(): Promise; interface: IPoolFactoryInterface; 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; deployPool: TypedContractMethod<[ k: IPoolFactory.PoolKeyStruct ], [ string ], "payable">; getPoolAddress: TypedContractMethod<[ k: IPoolFactory.PoolKeyStruct ], [ [string, boolean] & { pool: string; isDeployed: boolean; } ], "view">; initializationFee: TypedContractMethod<[ k: IPoolFactory.PoolKeyStruct ], [ bigint ], "view">; isPool: TypedContractMethod<[ contractAddress: AddressLike ], [ boolean ], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "deployPool"): TypedContractMethod<[k: IPoolFactory.PoolKeyStruct], [string], "payable">; getFunction(nameOrSignature: "getPoolAddress"): TypedContractMethod<[ k: IPoolFactory.PoolKeyStruct ], [ [string, boolean] & { pool: string; isDeployed: boolean; } ], "view">; getFunction(nameOrSignature: "initializationFee"): TypedContractMethod<[k: IPoolFactory.PoolKeyStruct], [bigint], "view">; getFunction(nameOrSignature: "isPool"): TypedContractMethod<[contractAddress: AddressLike], [boolean], "view">; getEvent(key: "PoolDeployed"): TypedContractEvent; getEvent(key: "PricingPath"): TypedContractEvent; filters: { "PoolDeployed(address,address,address,uint256,uint256,bool,address)": TypedContractEvent; PoolDeployed: TypedContractEvent; "PricingPath(address,address[][],uint8[],uint8,address[][],uint8[],uint8)": TypedContractEvent; PricingPath: TypedContractEvent; }; }