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 IVaultRegistry { type TokenPairStruct = { base: AddressLike; quote: AddressLike; oracleAdapter: AddressLike; }; type TokenPairStructOutput = [ base: string, quote: string, oracleAdapter: string ] & { base: string; quote: string; oracleAdapter: string; }; type VaultStruct = { vault: AddressLike; asset: AddressLike; vaultType: BytesLike; side: BigNumberish; optionType: BigNumberish; }; type VaultStructOutput = [ vault: string, asset: string, vaultType: string, side: bigint, optionType: bigint ] & { vault: string; asset: string; vaultType: string; side: bigint; optionType: bigint; }; } export interface IVaultRegistryInterface extends Interface { getFunction(nameOrSignature: "addSupportedTokenPairs" | "addVault" | "getImplementation" | "getNumberOfVaults" | "getSupportedTokenPairs" | "getVault" | "getVaults" | "getVaultsByAsset" | "getVaultsByFilter" | "getVaultsByOptionType" | "getVaultsByTokenPair" | "getVaultsByTradeSide" | "getVaultsByType" | "isVault" | "removeSupportedTokenPairs" | "removeVault" | "setImplementation" | "updateVault"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "SupportedTokenPairAdded" | "SupportedTokenPairRemoved" | "VaultAdded" | "VaultImplementationSet" | "VaultRemoved" | "VaultUpdated"): EventFragment; encodeFunctionData(functionFragment: "addSupportedTokenPairs", values: [AddressLike, IVaultRegistry.TokenPairStruct[]]): string; encodeFunctionData(functionFragment: "addVault", values: [AddressLike, AddressLike, BytesLike, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getImplementation", values: [BytesLike]): string; encodeFunctionData(functionFragment: "getNumberOfVaults", values?: undefined): string; encodeFunctionData(functionFragment: "getSupportedTokenPairs", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getVault", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getVaults", values?: undefined): string; encodeFunctionData(functionFragment: "getVaultsByAsset", values: [AddressLike]): string; encodeFunctionData(functionFragment: "getVaultsByFilter", values: [AddressLike[], BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getVaultsByOptionType", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getVaultsByTokenPair", values: [IVaultRegistry.TokenPairStruct]): string; encodeFunctionData(functionFragment: "getVaultsByTradeSide", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getVaultsByType", values: [BytesLike]): string; encodeFunctionData(functionFragment: "isVault", values: [AddressLike]): string; encodeFunctionData(functionFragment: "removeSupportedTokenPairs", values: [AddressLike, IVaultRegistry.TokenPairStruct[]]): string; encodeFunctionData(functionFragment: "removeVault", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setImplementation", values: [BytesLike, AddressLike]): string; encodeFunctionData(functionFragment: "updateVault", values: [AddressLike, AddressLike, BytesLike, BigNumberish, BigNumberish]): string; decodeFunctionResult(functionFragment: "addSupportedTokenPairs", data: BytesLike): Result; decodeFunctionResult(functionFragment: "addVault", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getImplementation", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getNumberOfVaults", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getSupportedTokenPairs", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVault", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVaults", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVaultsByAsset", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVaultsByFilter", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVaultsByOptionType", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVaultsByTokenPair", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVaultsByTradeSide", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getVaultsByType", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isVault", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeSupportedTokenPairs", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removeVault", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setImplementation", data: BytesLike): Result; decodeFunctionResult(functionFragment: "updateVault", data: BytesLike): Result; } export declare namespace SupportedTokenPairAddedEvent { type InputTuple = [ vault: AddressLike, base: AddressLike, quote: AddressLike, oracleAdapter: AddressLike ]; type OutputTuple = [ vault: string, base: string, quote: string, oracleAdapter: string ]; interface OutputObject { vault: string; base: string; quote: string; oracleAdapter: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SupportedTokenPairRemovedEvent { type InputTuple = [ vault: AddressLike, base: AddressLike, quote: AddressLike, oracleAdapter: AddressLike ]; type OutputTuple = [ vault: string, base: string, quote: string, oracleAdapter: string ]; interface OutputObject { vault: string; base: string; quote: string; oracleAdapter: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace VaultAddedEvent { type InputTuple = [ vault: AddressLike, asset: AddressLike, vaultType: BytesLike, side: BigNumberish, optionType: BigNumberish ]; type OutputTuple = [ vault: string, asset: string, vaultType: string, side: bigint, optionType: bigint ]; interface OutputObject { vault: string; asset: string; vaultType: string; side: bigint; optionType: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace VaultImplementationSetEvent { type InputTuple = [vaultType: BytesLike, implementation: AddressLike]; type OutputTuple = [vaultType: string, implementation: string]; interface OutputObject { vaultType: string; implementation: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace VaultRemovedEvent { type InputTuple = [vault: AddressLike]; type OutputTuple = [vault: string]; interface OutputObject { vault: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace VaultUpdatedEvent { type InputTuple = [ vault: AddressLike, asset: AddressLike, vaultType: BytesLike, side: BigNumberish, optionType: BigNumberish ]; type OutputTuple = [ vault: string, asset: string, vaultType: string, side: bigint, optionType: bigint ]; interface OutputObject { vault: string; asset: string; vaultType: string; side: bigint; optionType: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IVaultRegistry extends BaseContract { connect(runner?: ContractRunner | null): IVaultRegistry; waitForDeployment(): Promise; interface: IVaultRegistryInterface; 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; addSupportedTokenPairs: TypedContractMethod<[ vault: AddressLike, tokenPairs: IVaultRegistry.TokenPairStruct[] ], [ void ], "nonpayable">; addVault: TypedContractMethod<[ vault: AddressLike, asset: AddressLike, vaultType: BytesLike, side: BigNumberish, optionType: BigNumberish ], [ void ], "nonpayable">; getImplementation: TypedContractMethod<[ vaultType: BytesLike ], [ string ], "view">; getNumberOfVaults: TypedContractMethod<[], [bigint], "view">; getSupportedTokenPairs: TypedContractMethod<[ vault: AddressLike ], [ IVaultRegistry.TokenPairStructOutput[] ], "view">; getVault: TypedContractMethod<[ vault: AddressLike ], [ IVaultRegistry.VaultStructOutput ], "view">; getVaults: TypedContractMethod<[ ], [ IVaultRegistry.VaultStructOutput[] ], "view">; getVaultsByAsset: TypedContractMethod<[ asset: AddressLike ], [ IVaultRegistry.VaultStructOutput[] ], "view">; getVaultsByFilter: TypedContractMethod<[ assets: AddressLike[], side: BigNumberish, optionType: BigNumberish ], [ IVaultRegistry.VaultStructOutput[] ], "view">; getVaultsByOptionType: TypedContractMethod<[ optionType: BigNumberish ], [ IVaultRegistry.VaultStructOutput[] ], "view">; getVaultsByTokenPair: TypedContractMethod<[ tokenPair: IVaultRegistry.TokenPairStruct ], [ IVaultRegistry.VaultStructOutput[] ], "view">; getVaultsByTradeSide: TypedContractMethod<[ side: BigNumberish ], [ IVaultRegistry.VaultStructOutput[] ], "view">; getVaultsByType: TypedContractMethod<[ vaultType: BytesLike ], [ IVaultRegistry.VaultStructOutput[] ], "view">; isVault: TypedContractMethod<[vault: AddressLike], [boolean], "view">; removeSupportedTokenPairs: TypedContractMethod<[ vault: AddressLike, tokenPairsToRemove: IVaultRegistry.TokenPairStruct[] ], [ void ], "nonpayable">; removeVault: TypedContractMethod<[vault: AddressLike], [void], "nonpayable">; setImplementation: TypedContractMethod<[ vaultType: BytesLike, implementation: AddressLike ], [ void ], "nonpayable">; updateVault: TypedContractMethod<[ vault: AddressLike, asset: AddressLike, vaultType: BytesLike, side: BigNumberish, optionType: BigNumberish ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "addSupportedTokenPairs"): TypedContractMethod<[ vault: AddressLike, tokenPairs: IVaultRegistry.TokenPairStruct[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "addVault"): TypedContractMethod<[ vault: AddressLike, asset: AddressLike, vaultType: BytesLike, side: BigNumberish, optionType: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "getImplementation"): TypedContractMethod<[vaultType: BytesLike], [string], "view">; getFunction(nameOrSignature: "getNumberOfVaults"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "getSupportedTokenPairs"): TypedContractMethod<[ vault: AddressLike ], [ IVaultRegistry.TokenPairStructOutput[] ], "view">; getFunction(nameOrSignature: "getVault"): TypedContractMethod<[ vault: AddressLike ], [ IVaultRegistry.VaultStructOutput ], "view">; getFunction(nameOrSignature: "getVaults"): TypedContractMethod<[], [IVaultRegistry.VaultStructOutput[]], "view">; getFunction(nameOrSignature: "getVaultsByAsset"): TypedContractMethod<[ asset: AddressLike ], [ IVaultRegistry.VaultStructOutput[] ], "view">; getFunction(nameOrSignature: "getVaultsByFilter"): TypedContractMethod<[ assets: AddressLike[], side: BigNumberish, optionType: BigNumberish ], [ IVaultRegistry.VaultStructOutput[] ], "view">; getFunction(nameOrSignature: "getVaultsByOptionType"): TypedContractMethod<[ optionType: BigNumberish ], [ IVaultRegistry.VaultStructOutput[] ], "view">; getFunction(nameOrSignature: "getVaultsByTokenPair"): TypedContractMethod<[ tokenPair: IVaultRegistry.TokenPairStruct ], [ IVaultRegistry.VaultStructOutput[] ], "view">; getFunction(nameOrSignature: "getVaultsByTradeSide"): TypedContractMethod<[ side: BigNumberish ], [ IVaultRegistry.VaultStructOutput[] ], "view">; getFunction(nameOrSignature: "getVaultsByType"): TypedContractMethod<[ vaultType: BytesLike ], [ IVaultRegistry.VaultStructOutput[] ], "view">; getFunction(nameOrSignature: "isVault"): TypedContractMethod<[vault: AddressLike], [boolean], "view">; getFunction(nameOrSignature: "removeSupportedTokenPairs"): TypedContractMethod<[ vault: AddressLike, tokenPairsToRemove: IVaultRegistry.TokenPairStruct[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "removeVault"): TypedContractMethod<[vault: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setImplementation"): TypedContractMethod<[ vaultType: BytesLike, implementation: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "updateVault"): TypedContractMethod<[ vault: AddressLike, asset: AddressLike, vaultType: BytesLike, side: BigNumberish, optionType: BigNumberish ], [ void ], "nonpayable">; getEvent(key: "SupportedTokenPairAdded"): TypedContractEvent; getEvent(key: "SupportedTokenPairRemoved"): TypedContractEvent; getEvent(key: "VaultAdded"): TypedContractEvent; getEvent(key: "VaultImplementationSet"): TypedContractEvent; getEvent(key: "VaultRemoved"): TypedContractEvent; getEvent(key: "VaultUpdated"): TypedContractEvent; filters: { "SupportedTokenPairAdded(address,address,address,address)": TypedContractEvent; SupportedTokenPairAdded: TypedContractEvent; "SupportedTokenPairRemoved(address,address,address,address)": TypedContractEvent; SupportedTokenPairRemoved: TypedContractEvent; "VaultAdded(address,address,bytes32,uint8,uint8)": TypedContractEvent; VaultAdded: TypedContractEvent; "VaultImplementationSet(bytes32,address)": TypedContractEvent; VaultImplementationSet: TypedContractEvent; "VaultRemoved(address)": TypedContractEvent; VaultRemoved: TypedContractEvent; "VaultUpdated(address,address,bytes32,uint8,uint8)": TypedContractEvent; VaultUpdated: TypedContractEvent; }; }