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 IOptionPSInterface extends Interface { getFunction(nameOrSignature: "accountsByToken" | "annihilate" | "balanceOf" | "balanceOfBatch" | "cancelExercise" | "exercise" | "getExerciseCost" | "getExerciseValue" | "getSettings" | "getTokenIds" | "isApprovedForAll" | "name" | "safeBatchTransferFrom" | "safeTransferFrom" | "setApprovalForAll" | "settleLong" | "settleShort" | "supportsInterface" | "symbol" | "tokensByAccount" | "totalHolders" | "totalSupply" | "underwrite"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "Annihilate" | "ApprovalForAll" | "CancelExercise" | "Exercise" | "SettleLong" | "SettleShort" | "TransferBatch" | "TransferSingle" | "Underwrite"): EventFragment; encodeFunctionData(functionFragment: "accountsByToken", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "annihilate", values: [BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "balanceOf", values: [AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "balanceOfBatch", values: [AddressLike[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "cancelExercise", values: [BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "exercise", values: [BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getExerciseCost", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getExerciseValue", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getSettings", values?: undefined): string; encodeFunctionData(functionFragment: "getTokenIds", values?: undefined): string; encodeFunctionData(functionFragment: "isApprovedForAll", values: [AddressLike, AddressLike]): string; encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData(functionFragment: "safeBatchTransferFrom", values: [ AddressLike, AddressLike, BigNumberish[], BigNumberish[], BytesLike ]): string; encodeFunctionData(functionFragment: "safeTransferFrom", values: [AddressLike, AddressLike, BigNumberish, BigNumberish, BytesLike]): string; encodeFunctionData(functionFragment: "setApprovalForAll", values: [AddressLike, boolean]): string; encodeFunctionData(functionFragment: "settleLong", values: [BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "settleShort", values: [BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string; encodeFunctionData(functionFragment: "symbol", values?: undefined): string; encodeFunctionData(functionFragment: "tokensByAccount", values: [AddressLike]): string; encodeFunctionData(functionFragment: "totalHolders", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "totalSupply", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "underwrite", values: [BigNumberish, BigNumberish, AddressLike, BigNumberish]): string; decodeFunctionResult(functionFragment: "accountsByToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "annihilate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOfBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "cancelExercise", data: BytesLike): Result; decodeFunctionResult(functionFragment: "exercise", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getExerciseCost", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getExerciseValue", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getSettings", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTokenIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isApprovedForAll", data: BytesLike): Result; decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult(functionFragment: "safeBatchTransferFrom", data: BytesLike): Result; decodeFunctionResult(functionFragment: "safeTransferFrom", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setApprovalForAll", data: BytesLike): Result; decodeFunctionResult(functionFragment: "settleLong", data: BytesLike): Result; decodeFunctionResult(functionFragment: "settleShort", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tokensByAccount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalHolders", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "underwrite", data: BytesLike): Result; } export declare namespace AnnihilateEvent { type InputTuple = [ annihilator: AddressLike, strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ]; type OutputTuple = [ annihilator: string, strike: bigint, maturity: bigint, contractSize: bigint ]; interface OutputObject { annihilator: string; strike: bigint; maturity: bigint; contractSize: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ApprovalForAllEvent { type InputTuple = [ account: AddressLike, operator: AddressLike, approved: boolean ]; type OutputTuple = [ account: string, operator: string, approved: boolean ]; interface OutputObject { account: string; operator: string; approved: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace CancelExerciseEvent { type InputTuple = [ user: AddressLike, strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish, exerciseCostRefunded: BigNumberish ]; type OutputTuple = [ user: string, strike: bigint, maturity: bigint, contractSize: bigint, exerciseCostRefunded: bigint ]; interface OutputObject { user: string; strike: bigint; maturity: bigint; contractSize: bigint; exerciseCostRefunded: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ExerciseEvent { type InputTuple = [ user: AddressLike, strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish, exerciseCost: BigNumberish, fee: BigNumberish ]; type OutputTuple = [ user: string, strike: bigint, maturity: bigint, contractSize: bigint, exerciseCost: bigint, fee: bigint ]; interface OutputObject { user: string; strike: bigint; maturity: bigint; contractSize: bigint; exerciseCost: bigint; fee: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SettleLongEvent { type InputTuple = [ user: AddressLike, strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish, exerciseValue: BigNumberish ]; type OutputTuple = [ user: string, strike: bigint, maturity: bigint, contractSize: bigint, exerciseValue: bigint ]; interface OutputObject { user: string; strike: bigint; maturity: bigint; contractSize: bigint; exerciseValue: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SettleShortEvent { type InputTuple = [ user: AddressLike, strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish, collateralAmount: BigNumberish, exerciseTokenAmount: BigNumberish ]; type OutputTuple = [ user: string, strike: bigint, maturity: bigint, contractSize: bigint, collateralAmount: bigint, exerciseTokenAmount: bigint ]; interface OutputObject { user: string; strike: bigint; maturity: bigint; contractSize: bigint; collateralAmount: bigint; exerciseTokenAmount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TransferBatchEvent { type InputTuple = [ operator: AddressLike, from: AddressLike, to: AddressLike, ids: BigNumberish[], values: BigNumberish[] ]; type OutputTuple = [ operator: string, from: string, to: string, ids: bigint[], values: bigint[] ]; interface OutputObject { operator: string; from: string; to: string; ids: bigint[]; values: bigint[]; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace TransferSingleEvent { type InputTuple = [ operator: AddressLike, from: AddressLike, to: AddressLike, id: BigNumberish, value: BigNumberish ]; type OutputTuple = [ operator: string, from: string, to: string, id: bigint, value: bigint ]; interface OutputObject { operator: string; from: string; to: string; id: bigint; value: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UnderwriteEvent { type InputTuple = [ underwriter: AddressLike, longReceiver: AddressLike, strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ]; type OutputTuple = [ underwriter: string, longReceiver: string, strike: bigint, maturity: bigint, contractSize: bigint ]; interface OutputObject { underwriter: string; longReceiver: string; strike: bigint; maturity: bigint; contractSize: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IOptionPS extends BaseContract { connect(runner?: ContractRunner | null): IOptionPS; waitForDeployment(): Promise; interface: IOptionPSInterface; 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; accountsByToken: TypedContractMethod<[id: BigNumberish], [string[]], "view">; annihilate: TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ], [ void ], "nonpayable">; balanceOf: TypedContractMethod<[ account: AddressLike, id: BigNumberish ], [ bigint ], "view">; balanceOfBatch: TypedContractMethod<[ accounts: AddressLike[], ids: BigNumberish[] ], [ bigint[] ], "view">; cancelExercise: TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ], [ void ], "nonpayable">; exercise: TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ], [ void ], "nonpayable">; getExerciseCost: TypedContractMethod<[ strike: BigNumberish, contractSize: BigNumberish ], [ [bigint, bigint] & { totalExerciseCost: bigint; fee: bigint; } ], "view">; getExerciseValue: TypedContractMethod<[ strike: BigNumberish, contractSize: BigNumberish ], [ bigint ], "view">; getSettings: TypedContractMethod<[ ], [ [ string, string, boolean ] & { base: string; quote: string; isCall: boolean; } ], "view">; getTokenIds: TypedContractMethod<[], [bigint[]], "view">; isApprovedForAll: TypedContractMethod<[ account: AddressLike, operator: AddressLike ], [ boolean ], "view">; name: TypedContractMethod<[], [string], "view">; safeBatchTransferFrom: TypedContractMethod<[ from: AddressLike, to: AddressLike, ids: BigNumberish[], amounts: BigNumberish[], data: BytesLike ], [ void ], "nonpayable">; safeTransferFrom: TypedContractMethod<[ from: AddressLike, to: AddressLike, id: BigNumberish, amount: BigNumberish, data: BytesLike ], [ void ], "nonpayable">; setApprovalForAll: TypedContractMethod<[ operator: AddressLike, status: boolean ], [ void ], "nonpayable">; settleLong: TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ], [ bigint ], "nonpayable">; settleShort: TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ], [ [ bigint, bigint ] & { collateralAmount: bigint; exerciseTokenAmount: bigint; } ], "nonpayable">; supportsInterface: TypedContractMethod<[ interfaceId: BytesLike ], [ boolean ], "view">; symbol: TypedContractMethod<[], [string], "view">; tokensByAccount: TypedContractMethod<[ account: AddressLike ], [ bigint[] ], "view">; totalHolders: TypedContractMethod<[id: BigNumberish], [bigint], "view">; totalSupply: TypedContractMethod<[id: BigNumberish], [bigint], "view">; underwrite: TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish, longReceiver: AddressLike, contractSize: BigNumberish ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "accountsByToken"): TypedContractMethod<[id: BigNumberish], [string[]], "view">; getFunction(nameOrSignature: "annihilate"): TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "balanceOf"): TypedContractMethod<[ account: AddressLike, id: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "balanceOfBatch"): TypedContractMethod<[ accounts: AddressLike[], ids: BigNumberish[] ], [ bigint[] ], "view">; getFunction(nameOrSignature: "cancelExercise"): TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "exercise"): TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "getExerciseCost"): TypedContractMethod<[ strike: BigNumberish, contractSize: BigNumberish ], [ [bigint, bigint] & { totalExerciseCost: bigint; fee: bigint; } ], "view">; getFunction(nameOrSignature: "getExerciseValue"): TypedContractMethod<[ strike: BigNumberish, contractSize: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "getSettings"): TypedContractMethod<[ ], [ [ string, string, boolean ] & { base: string; quote: string; isCall: boolean; } ], "view">; getFunction(nameOrSignature: "getTokenIds"): TypedContractMethod<[], [bigint[]], "view">; getFunction(nameOrSignature: "isApprovedForAll"): TypedContractMethod<[ account: AddressLike, operator: AddressLike ], [ boolean ], "view">; getFunction(nameOrSignature: "name"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "safeBatchTransferFrom"): TypedContractMethod<[ from: AddressLike, to: AddressLike, ids: BigNumberish[], amounts: BigNumberish[], data: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "safeTransferFrom"): TypedContractMethod<[ from: AddressLike, to: AddressLike, id: BigNumberish, amount: BigNumberish, data: BytesLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setApprovalForAll"): TypedContractMethod<[ operator: AddressLike, status: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "settleLong"): TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ], [ bigint ], "nonpayable">; getFunction(nameOrSignature: "settleShort"): TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish, contractSize: BigNumberish ], [ [ bigint, bigint ] & { collateralAmount: bigint; exerciseTokenAmount: bigint; } ], "nonpayable">; getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "symbol"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "tokensByAccount"): TypedContractMethod<[account: AddressLike], [bigint[]], "view">; getFunction(nameOrSignature: "totalHolders"): TypedContractMethod<[id: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "totalSupply"): TypedContractMethod<[id: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "underwrite"): TypedContractMethod<[ strike: BigNumberish, maturity: BigNumberish, longReceiver: AddressLike, contractSize: BigNumberish ], [ void ], "nonpayable">; getEvent(key: "Annihilate"): TypedContractEvent; getEvent(key: "ApprovalForAll"): TypedContractEvent; getEvent(key: "CancelExercise"): TypedContractEvent; getEvent(key: "Exercise"): TypedContractEvent; getEvent(key: "SettleLong"): TypedContractEvent; getEvent(key: "SettleShort"): TypedContractEvent; getEvent(key: "TransferBatch"): TypedContractEvent; getEvent(key: "TransferSingle"): TypedContractEvent; getEvent(key: "Underwrite"): TypedContractEvent; filters: { "Annihilate(address,uint256,uint256,uint256)": TypedContractEvent; Annihilate: TypedContractEvent; "ApprovalForAll(address,address,bool)": TypedContractEvent; ApprovalForAll: TypedContractEvent; "CancelExercise(address,uint256,uint256,uint256,uint256)": TypedContractEvent; CancelExercise: TypedContractEvent; "Exercise(address,uint256,uint256,uint256,uint256,uint256)": TypedContractEvent; Exercise: TypedContractEvent; "SettleLong(address,uint256,uint256,uint256,uint256)": TypedContractEvent; SettleLong: TypedContractEvent; "SettleShort(address,uint256,uint256,uint256,uint256,uint256)": TypedContractEvent; SettleShort: TypedContractEvent; "TransferBatch(address,address,address,uint256[],uint256[])": TypedContractEvent; TransferBatch: TypedContractEvent; "TransferSingle(address,address,address,uint256,uint256)": TypedContractEvent; TransferSingle: TypedContractEvent; "Underwrite(address,address,uint256,uint256,uint256)": TypedContractEvent; Underwrite: TypedContractEvent; }; }