UNPKG

supersub

Version:
1,556 lines (1,466 loc) 42.2 kB
/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ 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 type ManifestExternalCallPermissionStruct = { externalAddress: AddressLike; permitAnySelector: boolean; selectors: BytesLike[]; }; export type ManifestExternalCallPermissionStructOutput = [ externalAddress: string, permitAnySelector: boolean, selectors: string[], ] & { externalAddress: string; permitAnySelector: boolean; selectors: string[]; }; export type ManifestFunctionStruct = { functionType: BigNumberish; functionId: BigNumberish; dependencyIndex: BigNumberish; }; export type ManifestFunctionStructOutput = [ functionType: bigint, functionId: bigint, dependencyIndex: bigint, ] & { functionType: bigint; functionId: bigint; dependencyIndex: bigint }; export type ManifestAssociatedFunctionStruct = { executionSelector: BytesLike; associatedFunction: ManifestFunctionStruct; }; export type ManifestAssociatedFunctionStructOutput = [ executionSelector: string, associatedFunction: ManifestFunctionStructOutput, ] & { executionSelector: string; associatedFunction: ManifestFunctionStructOutput; }; export type ManifestExecutionHookStruct = { executionSelector: BytesLike; preExecHook: ManifestFunctionStruct; postExecHook: ManifestFunctionStruct; }; export type ManifestExecutionHookStructOutput = [ executionSelector: string, preExecHook: ManifestFunctionStructOutput, postExecHook: ManifestFunctionStructOutput, ] & { executionSelector: string; preExecHook: ManifestFunctionStructOutput; postExecHook: ManifestFunctionStructOutput; }; export type PluginManifestStruct = { interfaceIds: BytesLike[]; dependencyInterfaceIds: BytesLike[]; executionFunctions: BytesLike[]; permittedExecutionSelectors: BytesLike[]; permitAnyExternalAddress: boolean; canSpendNativeToken: boolean; permittedExternalCalls: ManifestExternalCallPermissionStruct[]; userOpValidationFunctions: ManifestAssociatedFunctionStruct[]; runtimeValidationFunctions: ManifestAssociatedFunctionStruct[]; preUserOpValidationHooks: ManifestAssociatedFunctionStruct[]; preRuntimeValidationHooks: ManifestAssociatedFunctionStruct[]; executionHooks: ManifestExecutionHookStruct[]; }; export type PluginManifestStructOutput = [ interfaceIds: string[], dependencyInterfaceIds: string[], executionFunctions: string[], permittedExecutionSelectors: string[], permitAnyExternalAddress: boolean, canSpendNativeToken: boolean, permittedExternalCalls: ManifestExternalCallPermissionStructOutput[], userOpValidationFunctions: ManifestAssociatedFunctionStructOutput[], runtimeValidationFunctions: ManifestAssociatedFunctionStructOutput[], preUserOpValidationHooks: ManifestAssociatedFunctionStructOutput[], preRuntimeValidationHooks: ManifestAssociatedFunctionStructOutput[], executionHooks: ManifestExecutionHookStructOutput[], ] & { interfaceIds: string[]; dependencyInterfaceIds: string[]; executionFunctions: string[]; permittedExecutionSelectors: string[]; permitAnyExternalAddress: boolean; canSpendNativeToken: boolean; permittedExternalCalls: ManifestExternalCallPermissionStructOutput[]; userOpValidationFunctions: ManifestAssociatedFunctionStructOutput[]; runtimeValidationFunctions: ManifestAssociatedFunctionStructOutput[]; preUserOpValidationHooks: ManifestAssociatedFunctionStructOutput[]; preRuntimeValidationHooks: ManifestAssociatedFunctionStructOutput[]; executionHooks: ManifestExecutionHookStructOutput[]; }; export type SelectorPermissionStruct = { functionSelector: BytesLike; permissionDescription: string; }; export type SelectorPermissionStructOutput = [ functionSelector: string, permissionDescription: string, ] & { functionSelector: string; permissionDescription: string }; export type PluginMetadataStruct = { name: string; version: string; author: string; permissionDescriptors: SelectorPermissionStruct[]; }; export type PluginMetadataStructOutput = [ name: string, version: string, author: string, permissionDescriptors: SelectorPermissionStructOutput[], ] & { name: string; version: string; author: string; permissionDescriptors: SelectorPermissionStructOutput[]; }; export type UserOperationStruct = { sender: AddressLike; nonce: BigNumberish; initCode: BytesLike; callData: BytesLike; callGasLimit: BigNumberish; verificationGasLimit: BigNumberish; preVerificationGas: BigNumberish; maxFeePerGas: BigNumberish; maxPriorityFeePerGas: BigNumberish; paymasterAndData: BytesLike; signature: BytesLike; }; export type UserOperationStructOutput = [ sender: string, nonce: bigint, initCode: string, callData: string, callGasLimit: bigint, verificationGasLimit: bigint, preVerificationGas: bigint, maxFeePerGas: bigint, maxPriorityFeePerGas: bigint, paymasterAndData: string, signature: string, ] & { sender: string; nonce: bigint; initCode: string; callData: string; callGasLimit: bigint; verificationGasLimit: bigint; preVerificationGas: bigint; maxFeePerGas: bigint; maxPriorityFeePerGas: bigint; paymasterAndData: string; signature: string; }; export declare namespace SubscriptionPlugin { export type InitPlanParamStruct = { price: BigNumberish; chargeInterval: BigNumberish; }; export type InitPlanParamStructOutput = [ price: bigint, chargeInterval: bigint, ] & { price: bigint; chargeInterval: bigint }; } export interface SubscriptionPluginInterface extends Interface { getFunction( nameOrSignature: | "AUTHOR" | "NAME" | "VERSION" | "addChainSelector" | "admin" | "ccipChainSelectors" | "changeSubscriptionEndTime" | "changeSubscriptionPlan" | "charge" | "createPlan" | "createProduct" | "createProductWithPlans" | "createRecurringPayment" | "currentChainId" | "getManifestHash" | "onInstall" | "onUninstall" | "pack" | "planNonce" | "plans" | "pluginManifest" | "pluginMetadata" | "postExecutionHook" | "preExecutionHook" | "preRuntimeValidationHook" | "preUserOpValidationHook" | "productNonce" | "products" | "runtimeValidationFunction" | "setTokenBridge" | "subscribe" | "subscribedToProduct" | "subscriptionNonces" | "supportsInterface" | "tokenBridge" | "unSubscribe" | "updatePlan" | "updateProduct" | "userOpValidationFunction" | "userSubscriptions" ): FunctionFragment; getEvent( nameOrSignatureOrTopic: | "PlanCreated" | "PlanUpdated" | "ProductCreated" | "ProductUpdated" | "Subscribed" | "SubscriptionCharged" | "SubscriptionEndTimeUpdated" | "SubscriptionPlanChanged" | "UnSubscribed" ): EventFragment; encodeFunctionData(functionFragment: "AUTHOR", values?: undefined): string; encodeFunctionData(functionFragment: "NAME", values?: undefined): string; encodeFunctionData(functionFragment: "VERSION", values?: undefined): string; encodeFunctionData( functionFragment: "addChainSelector", values: [BigNumberish, BigNumberish] ): string; encodeFunctionData(functionFragment: "admin", values?: undefined): string; encodeFunctionData( functionFragment: "ccipChainSelectors", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "changeSubscriptionEndTime", values: [BigNumberish, BigNumberish] ): string; encodeFunctionData( functionFragment: "changeSubscriptionPlan", values?: undefined ): string; encodeFunctionData( functionFragment: "charge", values: [AddressLike, BigNumberish] ): string; encodeFunctionData( functionFragment: "createPlan", values: [BigNumberish, BigNumberish, BigNumberish] ): string; encodeFunctionData( functionFragment: "createProduct", values: [ BytesLike, string, string, BigNumberish, AddressLike, AddressLike, BigNumberish, ] ): string; encodeFunctionData( functionFragment: "createProductWithPlans", values: [ BytesLike, string, string, BigNumberish, AddressLike, AddressLike, BigNumberish, SubscriptionPlugin.InitPlanParamStruct[], ] ): string; encodeFunctionData( functionFragment: "createRecurringPayment", values: [ BytesLike, string, string, AddressLike, AddressLike, BigNumberish, BigNumberish, BigNumberish, BigNumberish, ] ): string; encodeFunctionData( functionFragment: "currentChainId", values?: undefined ): string; encodeFunctionData( functionFragment: "getManifestHash", values?: undefined ): string; encodeFunctionData( functionFragment: "onInstall", values: [BytesLike] ): string; encodeFunctionData( functionFragment: "onUninstall", values: [BytesLike] ): string; encodeFunctionData( functionFragment: "pack", values: [AddressLike, BigNumberish] ): string; encodeFunctionData(functionFragment: "planNonce", values?: undefined): string; encodeFunctionData(functionFragment: "plans", values: [BigNumberish]): string; encodeFunctionData( functionFragment: "pluginManifest", values?: undefined ): string; encodeFunctionData( functionFragment: "pluginMetadata", values?: undefined ): string; encodeFunctionData( functionFragment: "postExecutionHook", values: [BigNumberish, BytesLike] ): string; encodeFunctionData( functionFragment: "preExecutionHook", values: [BigNumberish, AddressLike, BigNumberish, BytesLike] ): string; encodeFunctionData( functionFragment: "preRuntimeValidationHook", values: [BigNumberish, AddressLike, BigNumberish, BytesLike] ): string; encodeFunctionData( functionFragment: "preUserOpValidationHook", values: [BigNumberish, UserOperationStruct, BytesLike] ): string; encodeFunctionData( functionFragment: "productNonce", values?: undefined ): string; encodeFunctionData( functionFragment: "products", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "runtimeValidationFunction", values: [BigNumberish, AddressLike, BigNumberish, BytesLike] ): string; encodeFunctionData( functionFragment: "setTokenBridge", values: [AddressLike] ): string; encodeFunctionData( functionFragment: "subscribe", values: [BigNumberish, BigNumberish] ): string; encodeFunctionData( functionFragment: "subscribedToProduct", values: [AddressLike, BigNumberish] ): string; encodeFunctionData( functionFragment: "subscriptionNonces", values: [AddressLike] ): string; encodeFunctionData( functionFragment: "supportsInterface", values: [BytesLike] ): string; encodeFunctionData( functionFragment: "tokenBridge", values?: undefined ): string; encodeFunctionData( functionFragment: "unSubscribe", values: [BigNumberish] ): string; encodeFunctionData( functionFragment: "updatePlan", values: [BigNumberish, boolean] ): string; encodeFunctionData( functionFragment: "updateProduct", values: [BigNumberish, AddressLike, BigNumberish, boolean] ): string; encodeFunctionData( functionFragment: "userOpValidationFunction", values: [BigNumberish, UserOperationStruct, BytesLike] ): string; encodeFunctionData( functionFragment: "userSubscriptions", values: [AddressLike, BigNumberish] ): string; decodeFunctionResult(functionFragment: "AUTHOR", data: BytesLike): Result; decodeFunctionResult(functionFragment: "NAME", data: BytesLike): Result; decodeFunctionResult(functionFragment: "VERSION", data: BytesLike): Result; decodeFunctionResult( functionFragment: "addChainSelector", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "admin", data: BytesLike): Result; decodeFunctionResult( functionFragment: "ccipChainSelectors", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "changeSubscriptionEndTime", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "changeSubscriptionPlan", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "charge", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createPlan", data: BytesLike): Result; decodeFunctionResult( functionFragment: "createProduct", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "createProductWithPlans", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "createRecurringPayment", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "currentChainId", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "getManifestHash", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "onInstall", data: BytesLike): Result; decodeFunctionResult( functionFragment: "onUninstall", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "pack", data: BytesLike): Result; decodeFunctionResult(functionFragment: "planNonce", data: BytesLike): Result; decodeFunctionResult(functionFragment: "plans", data: BytesLike): Result; decodeFunctionResult( functionFragment: "pluginManifest", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "pluginMetadata", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "postExecutionHook", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "preExecutionHook", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "preRuntimeValidationHook", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "preUserOpValidationHook", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "productNonce", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "products", data: BytesLike): Result; decodeFunctionResult( functionFragment: "runtimeValidationFunction", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "setTokenBridge", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "subscribe", data: BytesLike): Result; decodeFunctionResult( functionFragment: "subscribedToProduct", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "subscriptionNonces", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "supportsInterface", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "tokenBridge", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "unSubscribe", data: BytesLike ): Result; decodeFunctionResult(functionFragment: "updatePlan", data: BytesLike): Result; decodeFunctionResult( functionFragment: "updateProduct", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "userOpValidationFunction", data: BytesLike ): Result; decodeFunctionResult( functionFragment: "userSubscriptions", data: BytesLike ): Result; } export namespace PlanCreatedEvent { export type InputTuple = [ productId: BigNumberish, planId: BigNumberish, price: BigNumberish, chargeInterval: BigNumberish, isActive: boolean, ]; export type OutputTuple = [ productId: bigint, planId: bigint, price: bigint, chargeInterval: bigint, isActive: boolean, ]; export interface OutputObject { productId: bigint; planId: bigint; price: bigint; chargeInterval: bigint; isActive: boolean; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace PlanUpdatedEvent { export type InputTuple = [planId: BigNumberish, isActive: boolean]; export type OutputTuple = [planId: bigint, isActive: boolean]; export interface OutputObject { planId: bigint; isActive: boolean; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace ProductCreatedEvent { export type InputTuple = [ productId: BigNumberish, provider: AddressLike, name: BytesLike, description: string, logoUrl: string, productType: BigNumberish, chargeToken: AddressLike, receivingAddress: AddressLike, destinationChain: BigNumberish, isActive: boolean, ]; export type OutputTuple = [ productId: bigint, provider: string, name: string, description: string, logoUrl: string, productType: bigint, chargeToken: string, receivingAddress: string, destinationChain: bigint, isActive: boolean, ]; export interface OutputObject { productId: bigint; provider: string; name: string; description: string; logoUrl: string; productType: bigint; chargeToken: string; receivingAddress: string; destinationChain: bigint; isActive: boolean; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace ProductUpdatedEvent { export type InputTuple = [ productId: BigNumberish, receivingAddress: AddressLike, destinationChain: BigNumberish, isActive: boolean, ]; export type OutputTuple = [ productId: bigint, receivingAddress: string, destinationChain: bigint, isActive: boolean, ]; export interface OutputObject { productId: bigint; receivingAddress: string; destinationChain: bigint; isActive: boolean; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SubscribedEvent { export type InputTuple = [ subscriber: AddressLike, provider: AddressLike, product: BigNumberish, plan: BigNumberish, subscriptionId: BigNumberish, endTime: BigNumberish, ]; export type OutputTuple = [ subscriber: string, provider: string, product: bigint, plan: bigint, subscriptionId: bigint, endTime: bigint, ]; export interface OutputObject { subscriber: string; provider: string; product: bigint; plan: bigint; subscriptionId: bigint; endTime: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SubscriptionChargedEvent { export type InputTuple = [ subscriber: AddressLike, recipient: AddressLike, subscriptionId: BigNumberish, planId: BigNumberish, productId: BigNumberish, amount: BigNumberish, timestamp: BigNumberish, ]; export type OutputTuple = [ subscriber: string, recipient: string, subscriptionId: bigint, planId: bigint, productId: bigint, amount: bigint, timestamp: bigint, ]; export interface OutputObject { subscriber: string; recipient: string; subscriptionId: bigint; planId: bigint; productId: bigint; amount: bigint; timestamp: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SubscriptionEndTimeUpdatedEvent { export type InputTuple = [ subscriber: AddressLike, id: BigNumberish, endTime: BigNumberish, ]; export type OutputTuple = [subscriber: string, id: bigint, endTime: bigint]; export interface OutputObject { subscriber: string; id: bigint; endTime: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace SubscriptionPlanChangedEvent { export type InputTuple = [ user: AddressLike, subscriptionId: BigNumberish, planId: BigNumberish, ]; export type OutputTuple = [ user: string, subscriptionId: bigint, planId: bigint, ]; export interface OutputObject { user: string; subscriptionId: bigint; planId: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export namespace UnSubscribedEvent { export type InputTuple = [user: AddressLike, subscriptionId: BigNumberish]; export type OutputTuple = [user: string, subscriptionId: bigint]; export interface OutputObject { user: string; subscriptionId: bigint; } export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>; export type Filter = TypedDeferredTopicFilter<Event>; export type Log = TypedEventLog<Event>; export type LogDescription = TypedLogDescription<Event>; } export interface SubscriptionPlugin extends BaseContract { connect(runner?: ContractRunner | null): SubscriptionPlugin; waitForDeployment(): Promise<this>; interface: SubscriptionPluginInterface; queryFilter<TCEvent extends TypedContractEvent>( event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined ): Promise<Array<TypedEventLog<TCEvent>>>; queryFilter<TCEvent extends TypedContractEvent>( filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined ): Promise<Array<TypedEventLog<TCEvent>>>; on<TCEvent extends TypedContractEvent>( event: TCEvent, listener: TypedListener<TCEvent> ): Promise<this>; on<TCEvent extends TypedContractEvent>( filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent> ): Promise<this>; once<TCEvent extends TypedContractEvent>( event: TCEvent, listener: TypedListener<TCEvent> ): Promise<this>; once<TCEvent extends TypedContractEvent>( filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent> ): Promise<this>; listeners<TCEvent extends TypedContractEvent>( event: TCEvent ): Promise<Array<TypedListener<TCEvent>>>; listeners(eventName?: string): Promise<Array<Listener>>; removeAllListeners<TCEvent extends TypedContractEvent>( event?: TCEvent ): Promise<this>; AUTHOR: TypedContractMethod<[], [string], "view">; NAME: TypedContractMethod<[], [string], "view">; VERSION: TypedContractMethod<[], [string], "view">; addChainSelector: TypedContractMethod< [_chainId: BigNumberish, _selector: BigNumberish], [void], "nonpayable" >; admin: TypedContractMethod<[], [string], "view">; ccipChainSelectors: TypedContractMethod< [arg0: BigNumberish], [bigint], "view" >; changeSubscriptionEndTime: TypedContractMethod< [subscriptionId: BigNumberish, endTime: BigNumberish], [void], "nonpayable" >; changeSubscriptionPlan: TypedContractMethod<[], [void], "view">; charge: TypedContractMethod< [subscriber: AddressLike, subscriptionId: BigNumberish], [void], "nonpayable" >; createPlan: TypedContractMethod< [ _productId: BigNumberish, _chargeInterval: BigNumberish, _price: BigNumberish, ], [void], "nonpayable" >; createProduct: TypedContractMethod< [ _name: BytesLike, _description: string, _logoUrl: string, _type: BigNumberish, _chargeToken: AddressLike, _receivingAddress: AddressLike, _destinationChain: BigNumberish, ], [void], "nonpayable" >; createProductWithPlans: TypedContractMethod< [ _name: BytesLike, _description: string, _logoUrl: string, _type: BigNumberish, _chargeToken: AddressLike, _receivingAddress: AddressLike, _destinationChain: BigNumberish, _plans: SubscriptionPlugin.InitPlanParamStruct[], ], [void], "nonpayable" >; createRecurringPayment: TypedContractMethod< [ _name: BytesLike, _description: string, _logoUrl: string, _chargeToken: AddressLike, _receivingAddress: AddressLike, _destinationChain: BigNumberish, _chargeInterval: BigNumberish, _endTime: BigNumberish, _price: BigNumberish, ], [void], "nonpayable" >; currentChainId: TypedContractMethod<[], [bigint], "view">; getManifestHash: TypedContractMethod<[], [string], "view">; onInstall: TypedContractMethod<[arg0: BytesLike], [void], "view">; onUninstall: TypedContractMethod<[arg0: BytesLike], [void], "view">; pack: TypedContractMethod< [addr: AddressLike, functionId: BigNumberish], [string], "view" >; planNonce: TypedContractMethod<[], [bigint], "view">; plans: TypedContractMethod< [arg0: BigNumberish], [ [bigint, bigint, string, bigint, bigint, boolean] & { productId: bigint; planId: bigint; provider: string; price: bigint; chargeInterval: bigint; isActive: boolean; }, ], "view" >; pluginManifest: TypedContractMethod<[], [PluginManifestStructOutput], "view">; pluginMetadata: TypedContractMethod<[], [PluginMetadataStructOutput], "view">; postExecutionHook: TypedContractMethod< [functionId: BigNumberish, preExecHookData: BytesLike], [void], "nonpayable" >; preExecutionHook: TypedContractMethod< [ functionId: BigNumberish, sender: AddressLike, value: BigNumberish, data: BytesLike, ], [string], "nonpayable" >; preRuntimeValidationHook: TypedContractMethod< [ functionId: BigNumberish, sender: AddressLike, value: BigNumberish, data: BytesLike, ], [void], "nonpayable" >; preUserOpValidationHook: TypedContractMethod< [ functionId: BigNumberish, userOp: UserOperationStruct, userOpHash: BytesLike, ], [bigint], "nonpayable" >; productNonce: TypedContractMethod<[], [bigint], "view">; products: TypedContractMethod< [arg0: BigNumberish], [ [bigint, bigint, string, string, string, bigint, boolean] & { productId: bigint; productType: bigint; provider: string; chargeToken: string; receivingAddress: string; destinationChain: bigint; isActive: boolean; }, ], "view" >; runtimeValidationFunction: TypedContractMethod< [ functionId: BigNumberish, sender: AddressLike, value: BigNumberish, data: BytesLike, ], [void], "nonpayable" >; setTokenBridge: TypedContractMethod< [_bridgeAddr: AddressLike], [void], "nonpayable" >; subscribe: TypedContractMethod< [planId: BigNumberish, endTime: BigNumberish], [void], "nonpayable" >; subscribedToProduct: TypedContractMethod< [arg0: AddressLike, arg1: BigNumberish], [boolean], "view" >; subscriptionNonces: TypedContractMethod< [arg0: AddressLike], [bigint], "view" >; supportsInterface: TypedContractMethod< [interfaceId: BytesLike], [boolean], "view" >; tokenBridge: TypedContractMethod<[], [string], "view">; unSubscribe: TypedContractMethod< [subscriptionId: BigNumberish], [void], "nonpayable" >; updatePlan: TypedContractMethod< [_planId: BigNumberish, _isActive: boolean], [void], "nonpayable" >; updateProduct: TypedContractMethod< [ _productId: BigNumberish, _receivingAddr: AddressLike, _destChain: BigNumberish, _isActive: boolean, ], [void], "nonpayable" >; userOpValidationFunction: TypedContractMethod< [ functionId: BigNumberish, userOp: UserOperationStruct, userOpHash: BytesLike, ], [bigint], "nonpayable" >; userSubscriptions: TypedContractMethod< [arg0: AddressLike, arg1: BigNumberish], [ [bigint, bigint, string, bigint, bigint, bigint, boolean] & { subscriptionId: bigint; product: bigint; provider: string; plan: bigint; lastChargeDate: bigint; endTime: bigint; isActive: boolean; }, ], "view" >; getFunction<T extends ContractMethod = ContractMethod>( key: string | FunctionFragment ): T; getFunction( nameOrSignature: "AUTHOR" ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "NAME" ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "VERSION" ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "addChainSelector" ): TypedContractMethod< [_chainId: BigNumberish, _selector: BigNumberish], [void], "nonpayable" >; getFunction( nameOrSignature: "admin" ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "ccipChainSelectors" ): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">; getFunction( nameOrSignature: "changeSubscriptionEndTime" ): TypedContractMethod< [subscriptionId: BigNumberish, endTime: BigNumberish], [void], "nonpayable" >; getFunction( nameOrSignature: "changeSubscriptionPlan" ): TypedContractMethod<[], [void], "view">; getFunction( nameOrSignature: "charge" ): TypedContractMethod< [subscriber: AddressLike, subscriptionId: BigNumberish], [void], "nonpayable" >; getFunction( nameOrSignature: "createPlan" ): TypedContractMethod< [ _productId: BigNumberish, _chargeInterval: BigNumberish, _price: BigNumberish, ], [void], "nonpayable" >; getFunction( nameOrSignature: "createProduct" ): TypedContractMethod< [ _name: BytesLike, _description: string, _logoUrl: string, _type: BigNumberish, _chargeToken: AddressLike, _receivingAddress: AddressLike, _destinationChain: BigNumberish, ], [void], "nonpayable" >; getFunction( nameOrSignature: "createProductWithPlans" ): TypedContractMethod< [ _name: BytesLike, _description: string, _logoUrl: string, _type: BigNumberish, _chargeToken: AddressLike, _receivingAddress: AddressLike, _destinationChain: BigNumberish, _plans: SubscriptionPlugin.InitPlanParamStruct[], ], [void], "nonpayable" >; getFunction( nameOrSignature: "createRecurringPayment" ): TypedContractMethod< [ _name: BytesLike, _description: string, _logoUrl: string, _chargeToken: AddressLike, _receivingAddress: AddressLike, _destinationChain: BigNumberish, _chargeInterval: BigNumberish, _endTime: BigNumberish, _price: BigNumberish, ], [void], "nonpayable" >; getFunction( nameOrSignature: "currentChainId" ): TypedContractMethod<[], [bigint], "view">; getFunction( nameOrSignature: "getManifestHash" ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "onInstall" ): TypedContractMethod<[arg0: BytesLike], [void], "view">; getFunction( nameOrSignature: "onUninstall" ): TypedContractMethod<[arg0: BytesLike], [void], "view">; getFunction( nameOrSignature: "pack" ): TypedContractMethod< [addr: AddressLike, functionId: BigNumberish], [string], "view" >; getFunction( nameOrSignature: "planNonce" ): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "plans"): TypedContractMethod< [arg0: BigNumberish], [ [bigint, bigint, string, bigint, bigint, boolean] & { productId: bigint; planId: bigint; provider: string; price: bigint; chargeInterval: bigint; isActive: boolean; }, ], "view" >; getFunction( nameOrSignature: "pluginManifest" ): TypedContractMethod<[], [PluginManifestStructOutput], "view">; getFunction( nameOrSignature: "pluginMetadata" ): TypedContractMethod<[], [PluginMetadataStructOutput], "view">; getFunction( nameOrSignature: "postExecutionHook" ): TypedContractMethod< [functionId: BigNumberish, preExecHookData: BytesLike], [void], "nonpayable" >; getFunction( nameOrSignature: "preExecutionHook" ): TypedContractMethod< [ functionId: BigNumberish, sender: AddressLike, value: BigNumberish, data: BytesLike, ], [string], "nonpayable" >; getFunction( nameOrSignature: "preRuntimeValidationHook" ): TypedContractMethod< [ functionId: BigNumberish, sender: AddressLike, value: BigNumberish, data: BytesLike, ], [void], "nonpayable" >; getFunction( nameOrSignature: "preUserOpValidationHook" ): TypedContractMethod< [ functionId: BigNumberish, userOp: UserOperationStruct, userOpHash: BytesLike, ], [bigint], "nonpayable" >; getFunction( nameOrSignature: "productNonce" ): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "products"): TypedContractMethod< [arg0: BigNumberish], [ [bigint, bigint, string, string, string, bigint, boolean] & { productId: bigint; productType: bigint; provider: string; chargeToken: string; receivingAddress: string; destinationChain: bigint; isActive: boolean; }, ], "view" >; getFunction( nameOrSignature: "runtimeValidationFunction" ): TypedContractMethod< [ functionId: BigNumberish, sender: AddressLike, value: BigNumberish, data: BytesLike, ], [void], "nonpayable" >; getFunction( nameOrSignature: "setTokenBridge" ): TypedContractMethod<[_bridgeAddr: AddressLike], [void], "nonpayable">; getFunction( nameOrSignature: "subscribe" ): TypedContractMethod< [planId: BigNumberish, endTime: BigNumberish], [void], "nonpayable" >; getFunction( nameOrSignature: "subscribedToProduct" ): TypedContractMethod< [arg0: AddressLike, arg1: BigNumberish], [boolean], "view" >; getFunction( nameOrSignature: "subscriptionNonces" ): TypedContractMethod<[arg0: AddressLike], [bigint], "view">; getFunction( nameOrSignature: "supportsInterface" ): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; getFunction( nameOrSignature: "tokenBridge" ): TypedContractMethod<[], [string], "view">; getFunction( nameOrSignature: "unSubscribe" ): TypedContractMethod<[subscriptionId: BigNumberish], [void], "nonpayable">; getFunction( nameOrSignature: "updatePlan" ): TypedContractMethod< [_planId: BigNumberish, _isActive: boolean], [void], "nonpayable" >; getFunction( nameOrSignature: "updateProduct" ): TypedContractMethod< [ _productId: BigNumberish, _receivingAddr: AddressLike, _destChain: BigNumberish, _isActive: boolean, ], [void], "nonpayable" >; getFunction( nameOrSignature: "userOpValidationFunction" ): TypedContractMethod< [ functionId: BigNumberish, userOp: UserOperationStruct, userOpHash: BytesLike, ], [bigint], "nonpayable" >; getFunction(nameOrSignature: "userSubscriptions"): TypedContractMethod< [arg0: AddressLike, arg1: BigNumberish], [ [bigint, bigint, string, bigint, bigint, bigint, boolean] & { subscriptionId: bigint; product: bigint; provider: string; plan: bigint; lastChargeDate: bigint; endTime: bigint; isActive: boolean; }, ], "view" >; getEvent( key: "PlanCreated" ): TypedContractEvent< PlanCreatedEvent.InputTuple, PlanCreatedEvent.OutputTuple, PlanCreatedEvent.OutputObject >; getEvent( key: "PlanUpdated" ): TypedContractEvent< PlanUpdatedEvent.InputTuple, PlanUpdatedEvent.OutputTuple, PlanUpdatedEvent.OutputObject >; getEvent( key: "ProductCreated" ): TypedContractEvent< ProductCreatedEvent.InputTuple, ProductCreatedEvent.OutputTuple, ProductCreatedEvent.OutputObject >; getEvent( key: "ProductUpdated" ): TypedContractEvent< ProductUpdatedEvent.InputTuple, ProductUpdatedEvent.OutputTuple, ProductUpdatedEvent.OutputObject >; getEvent( key: "Subscribed" ): TypedContractEvent< SubscribedEvent.InputTuple, SubscribedEvent.OutputTuple, SubscribedEvent.OutputObject >; getEvent( key: "SubscriptionCharged" ): TypedContractEvent< SubscriptionChargedEvent.InputTuple, SubscriptionChargedEvent.OutputTuple, SubscriptionChargedEvent.OutputObject >; getEvent( key: "SubscriptionEndTimeUpdated" ): TypedContractEvent< SubscriptionEndTimeUpdatedEvent.InputTuple, SubscriptionEndTimeUpdatedEvent.OutputTuple, SubscriptionEndTimeUpdatedEvent.OutputObject >; getEvent( key: "SubscriptionPlanChanged" ): TypedContractEvent< SubscriptionPlanChangedEvent.InputTuple, SubscriptionPlanChangedEvent.OutputTuple, SubscriptionPlanChangedEvent.OutputObject >; getEvent( key: "UnSubscribed" ): TypedContractEvent< UnSubscribedEvent.InputTuple, UnSubscribedEvent.OutputTuple, UnSubscribedEvent.OutputObject >; filters: { "PlanCreated(uint256,uint256,uint256,uint256,bool)": TypedContractEvent< PlanCreatedEvent.InputTuple, PlanCreatedEvent.OutputTuple, PlanCreatedEvent.OutputObject >; PlanCreated: TypedContractEvent< PlanCreatedEvent.InputTuple, PlanCreatedEvent.OutputTuple, PlanCreatedEvent.OutputObject >; "PlanUpdated(uint256,bool)": TypedContractEvent< PlanUpdatedEvent.InputTuple, PlanUpdatedEvent.OutputTuple, PlanUpdatedEvent.OutputObject >; PlanUpdated: TypedContractEvent< PlanUpdatedEvent.InputTuple, PlanUpdatedEvent.OutputTuple, PlanUpdatedEvent.OutputObject >; "ProductCreated(uint256,address,bytes32,string,string,uint8,address,address,uint256,bool)": TypedContractEvent< ProductCreatedEvent.InputTuple, ProductCreatedEvent.OutputTuple, ProductCreatedEvent.OutputObject >; ProductCreated: TypedContractEvent< ProductCreatedEvent.InputTuple, ProductCreatedEvent.OutputTuple, ProductCreatedEvent.OutputObject >; "ProductUpdated(uint256,address,uint256,bool)": TypedContractEvent< ProductUpdatedEvent.InputTuple, ProductUpdatedEvent.OutputTuple, ProductUpdatedEvent.OutputObject >; ProductUpdated: TypedContractEvent< ProductUpdatedEvent.InputTuple, ProductUpdatedEvent.OutputTuple, ProductUpdatedEvent.OutputObject >; "Subscribed(address,address,uint256,uint256,uint256,uint256)": TypedContractEvent< SubscribedEvent.InputTuple, SubscribedEvent.OutputTuple, SubscribedEvent.OutputObject >; Subscribed: TypedContractEvent< SubscribedEvent.InputTuple, SubscribedEvent.OutputTuple, SubscribedEvent.OutputObject >; "SubscriptionCharged(address,address,uint256,uint256,uint256,uint256,uint256)": TypedContractEvent< SubscriptionChargedEvent.InputTuple, SubscriptionChargedEvent.OutputTuple, SubscriptionChargedEvent.OutputObject >; SubscriptionCharged: TypedContractEvent< SubscriptionChargedEvent.InputTuple, SubscriptionChargedEvent.OutputTuple, SubscriptionChargedEvent.OutputObject >; "SubscriptionEndTimeUpdated(address,uint256,uint256)": TypedContractEvent< SubscriptionEndTimeUpdatedEvent.InputTuple, SubscriptionEndTimeUpdatedEvent.OutputTuple, SubscriptionEndTimeUpdatedEvent.OutputObject >; SubscriptionEndTimeUpdated: TypedContractEvent< SubscriptionEndTimeUpdatedEvent.InputTuple, SubscriptionEndTimeUpdatedEvent.OutputTuple, SubscriptionEndTimeUpdatedEvent.OutputObject >; "SubscriptionPlanChanged(address,uint256,uint256)": TypedContractEvent< SubscriptionPlanChangedEvent.InputTuple, SubscriptionPlanChangedEvent.OutputTuple, SubscriptionPlanChangedEvent.OutputObject >; SubscriptionPlanChanged: TypedContractEvent< SubscriptionPlanChangedEvent.InputTuple, SubscriptionPlanChangedEvent.OutputTuple, SubscriptionPlanChangedEvent.OutputObject >; "UnSubscribed(address,uint256)": TypedContractEvent< UnSubscribedEvent.InputTuple, UnSubscribedEvent.OutputTuple, UnSubscribedEvent.OutputObject >; UnSubscribed: TypedContractEvent< UnSubscribedEvent.InputTuple, UnSubscribedEvent.OutputTuple, UnSubscribedEvent.OutputObject >; }; }