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 VolatilityOracleStorage { type UpdateStruct = { updatedAt: BigNumberish; tau: BytesLike; theta: BytesLike; psi: BytesLike; rho: BytesLike; }; type UpdateStructOutput = [ updatedAt: bigint, tau: string, theta: string, psi: string, rho: string ] & { updatedAt: bigint; tau: string; theta: string; psi: string; rho: string; }; type ParamsStruct = { tau: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish]; theta: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ]; psi: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish]; rho: [BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish]; }; type ParamsStructOutput = [ tau: [bigint, bigint, bigint, bigint, bigint], theta: [bigint, bigint, bigint, bigint, bigint], psi: [bigint, bigint, bigint, bigint, bigint], rho: [bigint, bigint, bigint, bigint, bigint] ] & { tau: [bigint, bigint, bigint, bigint, bigint]; theta: [bigint, bigint, bigint, bigint, bigint]; psi: [bigint, bigint, bigint, bigint, bigint]; rho: [bigint, bigint, bigint, bigint, bigint]; }; } export interface IVolatilityOracleInterface extends Interface { getFunction(nameOrSignature: "formatParams" | "getParams" | "getParamsUnpacked" | "getRiskFreeRate" | "getVolatility(address,uint256,uint256,uint256)" | "getVolatility(address,uint256,uint256[],uint256[])" | "parseParams" | "updateParams"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "UpdateParameters"): EventFragment; encodeFunctionData(functionFragment: "formatParams", values: [ [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ] ]): string; encodeFunctionData(functionFragment: "getParams", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getParamsUnpacked", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getRiskFreeRate", values?: undefined): string; encodeFunctionData(functionFragment: "getVolatility(address,uint256,uint256,uint256)", values: [AddressLike, BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getVolatility(address,uint256,uint256[],uint256[])", values: [AddressLike, BigNumberish, BigNumberish[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "parseParams", values: [BytesLike]): string; encodeFunctionData(functionFragment: "updateParams", values: [ AddressLike[], BytesLike[], BytesLike[], BytesLike[], BytesLike[], BigNumberish ]): string; decodeFunctionResult(functionFragment: "formatParams", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getParams", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getParamsUnpacked", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRiskFreeRate", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVolatility(address,uint256,uint256,uint256)", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVolatility(address,uint256,uint256[],uint256[])", data: BytesLike): Result; decodeFunctionResult(functionFragment: "parseParams", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateParams", data: BytesLike): Result; } export declare namespace UpdateParametersEvent { type InputTuple = [ token: AddressLike, tau: BytesLike, theta: BytesLike, psi: BytesLike, rho: BytesLike ]; type OutputTuple = [ token: string, tau: string, theta: string, psi: string, rho: string ]; interface OutputObject { token: string; tau: string; theta: string; psi: string; rho: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IVolatilityOracle extends BaseContract { connect(runner?: ContractRunner | null): IVolatilityOracle; waitForDeployment(): Promise; interface: IVolatilityOracleInterface; 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; formatParams: TypedContractMethod<[ params: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ] ], [ string ], "view">; getParams: TypedContractMethod<[ token: AddressLike ], [ VolatilityOracleStorage.UpdateStructOutput ], "view">; getParamsUnpacked: TypedContractMethod<[ token: AddressLike ], [ VolatilityOracleStorage.ParamsStructOutput ], "view">; getRiskFreeRate: TypedContractMethod<[], [bigint], "view">; "getVolatility(address,uint256,uint256,uint256)": TypedContractMethod<[ token: AddressLike, spot: BigNumberish, strike: BigNumberish, timeToMaturity: BigNumberish ], [ bigint ], "view">; "getVolatility(address,uint256,uint256[],uint256[])": TypedContractMethod<[ token: AddressLike, spot: BigNumberish, strike: BigNumberish[], timeToMaturity: BigNumberish[] ], [ bigint[] ], "view">; parseParams: TypedContractMethod<[ input: BytesLike ], [ [bigint, bigint, bigint, bigint, bigint] ], "view">; updateParams: TypedContractMethod<[ tokens: AddressLike[], tau: BytesLike[], theta: BytesLike[], psi: BytesLike[], rho: BytesLike[], riskFreeRate: BigNumberish ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "formatParams"): TypedContractMethod<[ params: [ BigNumberish, BigNumberish, BigNumberish, BigNumberish, BigNumberish ] ], [ string ], "view">; getFunction(nameOrSignature: "getParams"): TypedContractMethod<[ token: AddressLike ], [ VolatilityOracleStorage.UpdateStructOutput ], "view">; getFunction(nameOrSignature: "getParamsUnpacked"): TypedContractMethod<[ token: AddressLike ], [ VolatilityOracleStorage.ParamsStructOutput ], "view">; getFunction(nameOrSignature: "getRiskFreeRate"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getVolatility(address,uint256,uint256,uint256)"): TypedContractMethod<[ token: AddressLike, spot: BigNumberish, strike: BigNumberish, timeToMaturity: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "getVolatility(address,uint256,uint256[],uint256[])"): TypedContractMethod<[ token: AddressLike, spot: BigNumberish, strike: BigNumberish[], timeToMaturity: BigNumberish[] ], [ bigint[] ], "view">; getFunction(nameOrSignature: "parseParams"): TypedContractMethod<[ input: BytesLike ], [ [bigint, bigint, bigint, bigint, bigint] ], "view">; getFunction(nameOrSignature: "updateParams"): TypedContractMethod<[ tokens: AddressLike[], tau: BytesLike[], theta: BytesLike[], psi: BytesLike[], rho: BytesLike[], riskFreeRate: BigNumberish ], [ void ], "nonpayable">; getEvent(key: "UpdateParameters"): TypedContractEvent; filters: { "UpdateParameters(address,bytes32,bytes32,bytes32,bytes32)": TypedContractEvent; UpdateParameters: TypedContractEvent; }; }