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 interface IOptionRewardInterface extends Interface { getFunction(nameOrSignature: "claimRewards" | "getRedeemableLongs" | "getRewardPerContract" | "getSettings" | "getTotalBaseReserved" | "previewOptionParams" | "releaseRewardsNotClaimed" | "settle" | "underwrite"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "RewardsClaimed" | "RewardsNotClaimedReleased" | "Settled" | "Underwrite"): EventFragment; encodeFunctionData(functionFragment: "claimRewards", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getRedeemableLongs", values: [AddressLike, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getRewardPerContract", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getSettings", values?: undefined): string; encodeFunctionData(functionFragment: "getTotalBaseReserved", values?: undefined): string; encodeFunctionData(functionFragment: "previewOptionParams", values?: undefined): string; encodeFunctionData(functionFragment: "releaseRewardsNotClaimed", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "settle", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "underwrite", values: [AddressLike, BigNumberish]): string; decodeFunctionResult(functionFragment: "claimRewards", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRedeemableLongs", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRewardPerContract", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getSettings", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTotalBaseReserved", data: BytesLike): Result; decodeFunctionResult(functionFragment: "previewOptionParams", data: BytesLike): Result; decodeFunctionResult(functionFragment: "releaseRewardsNotClaimed", data: BytesLike): Result; decodeFunctionResult(functionFragment: "settle", data: BytesLike): Result; decodeFunctionResult(functionFragment: "underwrite", data: BytesLike): Result; } export declare namespace RewardsClaimedEvent { type InputTuple = [ user: AddressLike, strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish, baseAmount: BigNumberish ]; type OutputTuple = [ user: string, strike: bigint, maturity: bigint, contractSize: bigint, baseAmount: bigint ]; interface OutputObject { user: string; strike: bigint; maturity: bigint; contractSize: bigint; baseAmount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RewardsNotClaimedReleasedEvent { type InputTuple = [ strike: BigNumberish, maturity: BigNumberish, baseAmount: BigNumberish ]; type OutputTuple = [ strike: bigint, maturity: bigint, baseAmount: bigint ]; interface OutputObject { strike: bigint; maturity: bigint; baseAmount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SettledEvent { type InputTuple = [ strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish, intrinsicValuePerContract: BigNumberish, maxRedeemableLongs: BigNumberish, baseAmountPaid: BigNumberish, baseAmountFee: BigNumberish, quoteAmountPaid: BigNumberish, quoteAmountFee: BigNumberish, baseAmountReserved: BigNumberish ]; type OutputTuple = [ strike: bigint, maturity: bigint, contractSize: bigint, intrinsicValuePerContract: bigint, maxRedeemableLongs: bigint, baseAmountPaid: bigint, baseAmountFee: bigint, quoteAmountPaid: bigint, quoteAmountFee: bigint, baseAmountReserved: bigint ]; interface OutputObject { strike: bigint; maturity: bigint; contractSize: bigint; intrinsicValuePerContract: bigint; maxRedeemableLongs: bigint; baseAmountPaid: bigint; baseAmountFee: bigint; quoteAmountPaid: bigint; quoteAmountFee: bigint; baseAmountReserved: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UnderwriteEvent { type InputTuple = [ longReceiver: AddressLike, strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ]; type OutputTuple = [ longReceiver: string, strike: bigint, maturity: bigint, contractSize: bigint ]; interface OutputObject { longReceiver: string; strike: bigint; maturity: bigint; contractSize: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IOptionReward extends BaseContract { connect(runner?: ContractRunner | null): IOptionReward; waitForDeployment(): Promise; interface: IOptionRewardInterface; 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; claimRewards: TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish ], [ bigint ], "nonpayable">; getRedeemableLongs: TypedContractMethod<[ user: AddressLike, strike: BigNumberish, maturity: BigNumberish ], [ bigint ], "view">; getRewardPerContract: TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish ], [ bigint ], "view">; getSettings: TypedContractMethod<[ ], [ [ string, string, string, bigint, bigint, bigint, bigint, bigint, bigint, string ] & { option: string; oracleAdapter: string; paymentSplitter: string; percentOfSpot: bigint; penalty: bigint; optionDuration: bigint; lockupDuration: bigint; claimDuration: bigint; fee: bigint; feeReceiver: string; } ], "view">; getTotalBaseReserved: TypedContractMethod<[], [bigint], "view">; previewOptionParams: TypedContractMethod<[ ], [ [bigint, bigint] & { strike: bigint; maturity: bigint; } ], "view">; releaseRewardsNotClaimed: TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish ], [ void ], "nonpayable">; settle: TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish ], [ void ], "nonpayable">; underwrite: TypedContractMethod<[ longReceiver: AddressLike, contractSize: BigNumberish ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "claimRewards"): TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish ], [ bigint ], "nonpayable">; getFunction(nameOrSignature: "getRedeemableLongs"): TypedContractMethod<[ user: AddressLike, strike: BigNumberish, maturity: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "getRewardPerContract"): TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "getSettings"): TypedContractMethod<[ ], [ [ string, string, string, bigint, bigint, bigint, bigint, bigint, bigint, string ] & { option: string; oracleAdapter: string; paymentSplitter: string; percentOfSpot: bigint; penalty: bigint; optionDuration: bigint; lockupDuration: bigint; claimDuration: bigint; fee: bigint; feeReceiver: string; } ], "view">; getFunction(nameOrSignature: "getTotalBaseReserved"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "previewOptionParams"): TypedContractMethod<[ ], [ [bigint, bigint] & { strike: bigint; maturity: bigint; } ], "view">; getFunction(nameOrSignature: "releaseRewardsNotClaimed"): TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "settle"): TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "underwrite"): TypedContractMethod<[ longReceiver: AddressLike, contractSize: BigNumberish ], [ void ], "nonpayable">; getEvent(key: "RewardsClaimed"): TypedContractEvent; getEvent(key: "RewardsNotClaimedReleased"): TypedContractEvent; getEvent(key: "Settled"): TypedContractEvent; getEvent(key: "Underwrite"): TypedContractEvent; filters: { "RewardsClaimed(address,uint256,uint64,uint256,uint256)": TypedContractEvent; RewardsClaimed: TypedContractEvent; "RewardsNotClaimedReleased(uint256,uint64,uint256)": TypedContractEvent; RewardsNotClaimedReleased: TypedContractEvent; "Settled(uint256,uint64,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)": TypedContractEvent; Settled: TypedContractEvent; "Underwrite(address,uint256,uint64,uint256)": TypedContractEvent; Underwrite: TypedContractEvent; }; }