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 IOptionRewardFactory { type OptionRewardArgsStruct = { option: AddressLike; oracleAdapter: AddressLike; paymentSplitter: AddressLike; percentOfSpot: BigNumberish; penalty: BigNumberish; optionDuration: BigNumberish; lockupDuration: BigNumberish; claimDuration: BigNumberish; }; type OptionRewardArgsStructOutput = [ option: string, oracleAdapter: string, paymentSplitter: string, percentOfSpot: bigint, penalty: bigint, optionDuration: bigint, lockupDuration: bigint, claimDuration: bigint ] & { option: string; oracleAdapter: string; paymentSplitter: string; percentOfSpot: bigint; penalty: bigint; optionDuration: bigint; lockupDuration: bigint; claimDuration: bigint; }; type OptionRewardKeyStruct = { option: AddressLike; oracleAdapter: AddressLike; paymentSplitter: AddressLike; percentOfSpot: BigNumberish; penalty: BigNumberish; optionDuration: BigNumberish; lockupDuration: BigNumberish; claimDuration: BigNumberish; fee: BigNumberish; feeReceiver: AddressLike; }; type OptionRewardKeyStructOutput = [ option: string, oracleAdapter: string, paymentSplitter: string, percentOfSpot: bigint, penalty: bigint, optionDuration: bigint, lockupDuration: bigint, claimDuration: bigint, fee: bigint, feeReceiver: string ] & { option: string; oracleAdapter: string; paymentSplitter: string; percentOfSpot: bigint; penalty: bigint; optionDuration: bigint; lockupDuration: bigint; claimDuration: bigint; fee: bigint; feeReceiver: string; }; } export interface IOptionRewardFactoryInterface extends Interface { getFunction(nameOrSignature: "deployProxy" | "getDefaultFee" | "getDefaultFeeReceiver" | "getManagedProxyImplementation" | "getProxyAddress" | "isProxyDeployed" | "setManagedProxyImplementation"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "ManagedImplementationSet" | "PricingPath" | "ProxyDeployed"): EventFragment; encodeFunctionData(functionFragment: "deployProxy", values: [IOptionRewardFactory.OptionRewardArgsStruct]): string; encodeFunctionData(functionFragment: "getDefaultFee", values?: undefined): string; encodeFunctionData(functionFragment: "getDefaultFeeReceiver", values?: undefined): string; encodeFunctionData(functionFragment: "getManagedProxyImplementation", values?: undefined): string; encodeFunctionData(functionFragment: "getProxyAddress", values: [IOptionRewardFactory.OptionRewardKeyStruct]): string; encodeFunctionData(functionFragment: "isProxyDeployed", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setManagedProxyImplementation", values: [AddressLike]): string; decodeFunctionResult(functionFragment: "deployProxy", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDefaultFee", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDefaultFeeReceiver", 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 PricingPathEvent { type InputTuple = [ option: AddressLike, basePath: AddressLike[][], basePathDecimals: BigNumberish[], baseAdapterType: BigNumberish, quotePath: AddressLike[][], quotePathDecimals: BigNumberish[], quoteAdapterType: BigNumberish ]; type OutputTuple = [ option: string, basePath: string[][], basePathDecimals: bigint[], baseAdapterType: bigint, quotePath: string[][], quotePathDecimals: bigint[], quoteAdapterType: bigint ]; interface OutputObject { option: 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 declare namespace ProxyDeployedEvent { type InputTuple = [ option: AddressLike, oracleAdapter: AddressLike, paymentSplitter: AddressLike, percentOfSpot: BigNumberish, penalty: BigNumberish, optionDuration: BigNumberish, lockupDuration: BigNumberish, claimDuration: BigNumberish, fee: BigNumberish, feeReceiver: AddressLike, proxy: AddressLike ]; type OutputTuple = [ option: string, oracleAdapter: string, paymentSplitter: string, percentOfSpot: bigint, penalty: bigint, optionDuration: bigint, lockupDuration: bigint, claimDuration: bigint, fee: bigint, feeReceiver: string, proxy: string ]; interface OutputObject { option: string; oracleAdapter: string; paymentSplitter: string; percentOfSpot: bigint; penalty: bigint; optionDuration: bigint; lockupDuration: bigint; claimDuration: bigint; fee: bigint; feeReceiver: string; proxy: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IOptionRewardFactory extends BaseContract { connect(runner?: ContractRunner | null): IOptionRewardFactory; waitForDeployment(): Promise; interface: IOptionRewardFactoryInterface; 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: IOptionRewardFactory.OptionRewardArgsStruct ], [ string ], "nonpayable">; getDefaultFee: TypedContractMethod<[], [bigint], "view">; getDefaultFeeReceiver: TypedContractMethod<[], [string], "view">; getManagedProxyImplementation: TypedContractMethod<[], [string], "view">; getProxyAddress: TypedContractMethod<[ args: IOptionRewardFactory.OptionRewardKeyStruct ], [ [string, boolean] ], "view">; isProxyDeployed: TypedContractMethod<[proxy: AddressLike], [boolean], "view">; setManagedProxyImplementation: TypedContractMethod<[ implementation: AddressLike ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "deployProxy"): TypedContractMethod<[ args: IOptionRewardFactory.OptionRewardArgsStruct ], [ string ], "nonpayable">; getFunction(nameOrSignature: "getDefaultFee"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getDefaultFeeReceiver"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getManagedProxyImplementation"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "getProxyAddress"): TypedContractMethod<[ args: IOptionRewardFactory.OptionRewardKeyStruct ], [ [string, boolean] ], "view">; getFunction(nameOrSignature: "isProxyDeployed"): TypedContractMethod<[proxy: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "setManagedProxyImplementation"): TypedContractMethod<[implementation: AddressLike], [void], "nonpayable">; getEvent(key: "ManagedImplementationSet"): TypedContractEvent; getEvent(key: "PricingPath"): TypedContractEvent; getEvent(key: "ProxyDeployed"): TypedContractEvent; filters: { "ManagedImplementationSet(address)": TypedContractEvent; ManagedImplementationSet: TypedContractEvent; "PricingPath(address,address[][],uint8[],uint8,address[][],uint8[],uint8)": TypedContractEvent; PricingPath: TypedContractEvent; "ProxyDeployed(address,address,address,uint256,uint256,uint256,uint256,uint256,uint256,address,address)": TypedContractEvent; ProxyDeployed: TypedContractEvent; }; }