import type { BaseContract, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common"; export declare namespace IOptionPSFactory { type OptionPSArgsStruct = { base: AddressLike; quote: AddressLike; isCall: boolean; }; type OptionPSArgsStructOutput = [ base: string, quote: string, isCall: boolean ] & { base: string; quote: string; isCall: boolean; }; } export interface IOptionPSFactoryInterface extends Interface { getFunction(nameOrSignature: "deployProxy" | "getManagedProxyImplementation" | "getProxyAddress" | "isProxyDeployed" | "setManagedProxyImplementation"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "ManagedImplementationSet" | "ProxyDeployed"): EventFragment; encodeFunctionData(functionFragment: "deployProxy", values: [IOptionPSFactory.OptionPSArgsStruct]): string; encodeFunctionData(functionFragment: "getManagedProxyImplementation", values?: undefined): string; encodeFunctionData(functionFragment: "getProxyAddress", values: [IOptionPSFactory.OptionPSArgsStruct]): string; encodeFunctionData(functionFragment: "isProxyDeployed", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setManagedProxyImplementation", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "deployProxy", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getManagedProxyImplementation", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getProxyAddress", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isProxyDeployed", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setManagedProxyImplementation", data: BytesLike): Result; } export declare namespace ManagedImplementationSetEvent { type InputTuple = [implementation: AddressLike]; type OutputTuple = [implementation: string]; interface OutputObject { implementation: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProxyDeployedEvent { type InputTuple = [ base: AddressLike, quote: AddressLike, isCall: boolean, proxy: AddressLike ]; type OutputTuple = [ base: string, quote: string, isCall: boolean, proxy: string ]; interface OutputObject { base: string; quote: string; isCall: boolean; proxy: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IOptionPSFactory extends BaseContract { connect(runner?: ContractRunner | null): IOptionPSFactory; waitForDeployment(): Promise; interface: IOptionPSFactoryInterface; 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; deployProxy: TypedContractMethod<[ args: IOptionPSFactory.OptionPSArgsStruct ], [ string ], "nonpayable">; getManagedProxyImplementation: TypedContractMethod<[], [string], "view">; getProxyAddress: TypedContractMethod<[ args: IOptionPSFactory.OptionPSArgsStruct ], [ [string, boolean] & { proxy: string; isDeployed: boolean; } ], "view">; isProxyDeployed: TypedContractMethod<[proxy: AddressLike], [boolean], "view">; setManagedProxyImplementation: TypedContractMethod<[ implementation: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "deployProxy"): TypedContractMethod<[ args: IOptionPSFactory.OptionPSArgsStruct ], [ string ], "nonpayable">; getFunction(nameOrSignature: "getManagedProxyImplementation"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getProxyAddress"): TypedContractMethod<[ args: IOptionPSFactory.OptionPSArgsStruct ], [ [string, boolean] & { proxy: string; isDeployed: boolean; } ], "view">; getFunction(nameOrSignature: "isProxyDeployed"): TypedContractMethod<[proxy: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "setManagedProxyImplementation"): TypedContractMethod<[implementation: AddressLike], [void], "nonpayable">; getEvent(key: "ManagedImplementationSet"): TypedContractEvent; getEvent(key: "ProxyDeployed"): TypedContractEvent; filters: { "ManagedImplementationSet(address)": TypedContractEvent; ManagedImplementationSet: TypedContractEvent; "ProxyDeployed(address,address,bool,address)": TypedContractEvent; ProxyDeployed: TypedContractEvent; }; }