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 IProductRegistry { type CreateProductParamsStruct = { orgId: BigNumberish; name: string; description: string; imageUrl: string; externalUrl: string; isTransferable: boolean; }; type CreateProductParamsStructOutput = [ orgId: bigint, name: string, description: string, imageUrl: string, externalUrl: string, isTransferable: boolean ] & { orgId: bigint; name: string; description: string; imageUrl: string; externalUrl: string; isTransferable: boolean; }; type ProductStruct = { orgId: BigNumberish; name: string; description: string; imageUrl: string; externalUrl: string; isTransferable: boolean; isActive: boolean; }; type ProductStructOutput = [ orgId: bigint, name: string, description: string, imageUrl: string, externalUrl: string, isTransferable: boolean, isActive: boolean ] & { orgId: bigint; name: string; description: string; imageUrl: string; externalUrl: string; isTransferable: boolean; isActive: boolean; }; } export declare namespace PricingUtils { type PricingTierStruct = { lowerBound: BigNumberish; upperBound: BigNumberish; pricePerUnit: BigNumberish; priceFlatRate: BigNumberish; }; type PricingTierStructOutput = [ lowerBound: bigint, upperBound: bigint, pricePerUnit: bigint, priceFlatRate: bigint ] & { lowerBound: bigint; upperBound: bigint; pricePerUnit: bigint; priceFlatRate: bigint; }; type PricingStruct = { orgId: BigNumberish; chargeStyle: BigNumberish; chargeFrequency: BigNumberish; tiers: PricingUtils.PricingTierStruct[]; token: AddressLike; flatPrice: BigNumberish; usageMeterId: BigNumberish; isActive: boolean; isRestricted: boolean; }; type PricingStructOutput = [ orgId: bigint, chargeStyle: bigint, chargeFrequency: bigint, tiers: PricingUtils.PricingTierStructOutput[], token: string, flatPrice: bigint, usageMeterId: bigint, isActive: boolean, isRestricted: boolean ] & { orgId: bigint; chargeStyle: bigint; chargeFrequency: bigint; tiers: PricingUtils.PricingTierStructOutput[]; token: string; flatPrice: bigint; usageMeterId: bigint; isActive: boolean; isRestricted: boolean; }; } export interface IProductRegistryInterface extends Interface { getFunction(nameOrSignature: "canPurchaseProduct" | "canPurchaseProducts" | "createProduct" | "getOrgProductIds" | "getOrgProducts" | "getProduct" | "getProductNames" | "getProductPricing" | "getProductPricingBatch" | "getProductPricingIds" | "getProductsBatch" | "isOrgProduct" | "linkPricing" | "setProductActive" | "setProductDescription" | "setProductExternalUrl" | "setProductImageUrl" | "setProductName" | "setProductTransferable" | "totalProductSupply" | "unlinkPricing"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "ProductCreated" | "ProductPricingLinkUpdate" | "ProductStatusChanged" | "ProductUpdated"): EventFragment; encodeFunctionData(functionFragment: "canPurchaseProduct", values: [BigNumberish, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "canPurchaseProducts", values: [BigNumberish, BigNumberish[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "createProduct", values: [IProductRegistry.CreateProductParamsStruct]): string; encodeFunctionData(functionFragment: "getOrgProductIds", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getOrgProducts", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getProduct", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getProductNames", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "getProductPricing", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getProductPricingBatch", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "getProductPricingIds", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getProductsBatch", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "isOrgProduct", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "linkPricing", values: [BigNumberish, BigNumberish[]]): string; encodeFunctionData(functionFragment: "setProductActive", values: [BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "setProductDescription", values: [BigNumberish, string]): string; encodeFunctionData(functionFragment: "setProductExternalUrl", values: [BigNumberish, string]): string; encodeFunctionData(functionFragment: "setProductImageUrl", values: [BigNumberish, string]): string; encodeFunctionData(functionFragment: "setProductName", values: [BigNumberish, string]): string; encodeFunctionData(functionFragment: "setProductTransferable", values: [BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "totalProductSupply", values?: undefined): string; encodeFunctionData(functionFragment: "unlinkPricing", values: [BigNumberish, BigNumberish[]]): string; decodeFunctionResult(functionFragment: "canPurchaseProduct", data: BytesLike): Result; decodeFunctionResult(functionFragment: "canPurchaseProducts", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createProduct", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOrgProductIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOrgProducts", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getProduct", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getProductNames", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getProductPricing", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getProductPricingBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getProductPricingIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getProductsBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isOrgProduct", data: BytesLike): Result; decodeFunctionResult(functionFragment: "linkPricing", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProductActive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProductDescription", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProductExternalUrl", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProductImageUrl", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProductName", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProductTransferable", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalProductSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "unlinkPricing", data: BytesLike): Result; } export declare namespace ProductCreatedEvent { type InputTuple = [ organizationId: BigNumberish, productId: BigNumberish ]; type OutputTuple = [organizationId: bigint, productId: bigint]; interface OutputObject { organizationId: bigint; productId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProductPricingLinkUpdateEvent { type InputTuple = [ organizationId: BigNumberish, productId: BigNumberish, pricingId: BigNumberish, isLinked: boolean ]; type OutputTuple = [ organizationId: bigint, productId: bigint, pricingId: bigint, isLinked: boolean ]; interface OutputObject { organizationId: bigint; productId: bigint; pricingId: bigint; isLinked: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProductStatusChangedEvent { type InputTuple = [ organizationId: BigNumberish, productId: BigNumberish, isActive: boolean ]; type OutputTuple = [ organizationId: bigint, productId: bigint, isActive: boolean ]; interface OutputObject { organizationId: bigint; productId: bigint; isActive: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProductUpdatedEvent { type InputTuple = [ organizationId: BigNumberish, productId: BigNumberish ]; type OutputTuple = [organizationId: bigint, productId: bigint]; interface OutputObject { organizationId: bigint; productId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IProductRegistry extends BaseContract { connect(runner?: ContractRunner | null): IProductRegistry; waitForDeployment(): Promise; interface: IProductRegistryInterface; 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; canPurchaseProduct: TypedContractMethod<[ organizationId: BigNumberish, productId: BigNumberish, pricingId: BigNumberish ], [ void ], "view">; canPurchaseProducts: TypedContractMethod<[ _organizationId: BigNumberish, _productIds: BigNumberish[], _pricingIds: BigNumberish[] ], [ void ], "view">; createProduct: TypedContractMethod<[ params: IProductRegistry.CreateProductParamsStruct ], [ void ], "nonpayable">; getOrgProductIds: TypedContractMethod<[ _organizationId: BigNumberish ], [ bigint[] ], "view">; getOrgProducts: TypedContractMethod<[ _organizationId: BigNumberish ], [ [bigint[], IProductRegistry.ProductStructOutput[]] ], "view">; getProduct: TypedContractMethod<[ productId: BigNumberish ], [ IProductRegistry.ProductStructOutput ], "view">; getProductNames: TypedContractMethod<[ _productIds: BigNumberish[] ], [ string[] ], "view">; getProductPricing: TypedContractMethod<[ productId: BigNumberish ], [ [bigint[], PricingUtils.PricingStructOutput[]] ], "view">; getProductPricingBatch: TypedContractMethod<[ _productIds: BigNumberish[] ], [ [ bigint[][], PricingUtils.PricingStructOutput[][] ] & { pricingIds: bigint[][]; pricingOptions: PricingUtils.PricingStructOutput[][]; } ], "view">; getProductPricingIds: TypedContractMethod<[ productId: BigNumberish ], [ bigint[] ], "view">; getProductsBatch: TypedContractMethod<[ _productIds: BigNumberish[] ], [ IProductRegistry.ProductStructOutput[] ], "view">; isOrgProduct: TypedContractMethod<[ organizationId: BigNumberish, productId: BigNumberish ], [ boolean ], "view">; linkPricing: TypedContractMethod<[ productId: BigNumberish, pricingIds: BigNumberish[] ], [ void ], "nonpayable">; setProductActive: TypedContractMethod<[ productId: BigNumberish, _isActive: boolean ], [ void ], "nonpayable">; setProductDescription: TypedContractMethod<[ productId: BigNumberish, description: string ], [ void ], "nonpayable">; setProductExternalUrl: TypedContractMethod<[ productId: BigNumberish, externalUrl: string ], [ void ], "nonpayable">; setProductImageUrl: TypedContractMethod<[ productId: BigNumberish, imageUrl: string ], [ void ], "nonpayable">; setProductName: TypedContractMethod<[ productId: BigNumberish, name: string ], [ void ], "nonpayable">; setProductTransferable: TypedContractMethod<[ productId: BigNumberish, _isTransferable: boolean ], [ void ], "nonpayable">; totalProductSupply: TypedContractMethod<[], [bigint], "view">; unlinkPricing: TypedContractMethod<[ productId: BigNumberish, pricingIds: BigNumberish[] ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "canPurchaseProduct"): TypedContractMethod<[ organizationId: BigNumberish, productId: BigNumberish, pricingId: BigNumberish ], [ void ], "view">; getFunction(nameOrSignature: "canPurchaseProducts"): TypedContractMethod<[ _organizationId: BigNumberish, _productIds: BigNumberish[], _pricingIds: BigNumberish[] ], [ void ], "view">; getFunction(nameOrSignature: "createProduct"): TypedContractMethod<[ params: IProductRegistry.CreateProductParamsStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "getOrgProductIds"): TypedContractMethod<[_organizationId: BigNumberish], [bigint[]], "view">; getFunction(nameOrSignature: "getOrgProducts"): TypedContractMethod<[ _organizationId: BigNumberish ], [ [bigint[], IProductRegistry.ProductStructOutput[]] ], "view">; getFunction(nameOrSignature: "getProduct"): TypedContractMethod<[ productId: BigNumberish ], [ IProductRegistry.ProductStructOutput ], "view">; getFunction(nameOrSignature: "getProductNames"): TypedContractMethod<[_productIds: BigNumberish[]], [string[]], "view">; getFunction(nameOrSignature: "getProductPricing"): TypedContractMethod<[ productId: BigNumberish ], [ [bigint[], PricingUtils.PricingStructOutput[]] ], "view">; getFunction(nameOrSignature: "getProductPricingBatch"): TypedContractMethod<[ _productIds: BigNumberish[] ], [ [ bigint[][], PricingUtils.PricingStructOutput[][] ] & { pricingIds: bigint[][]; pricingOptions: PricingUtils.PricingStructOutput[][]; } ], "view">; getFunction(nameOrSignature: "getProductPricingIds"): TypedContractMethod<[productId: BigNumberish], [bigint[]], "view">; getFunction(nameOrSignature: "getProductsBatch"): TypedContractMethod<[ _productIds: BigNumberish[] ], [ IProductRegistry.ProductStructOutput[] ], "view">; getFunction(nameOrSignature: "isOrgProduct"): TypedContractMethod<[ organizationId: BigNumberish, productId: BigNumberish ], [ boolean ], "view">; getFunction(nameOrSignature: "linkPricing"): TypedContractMethod<[ productId: BigNumberish, pricingIds: BigNumberish[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setProductActive"): TypedContractMethod<[ productId: BigNumberish, _isActive: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setProductDescription"): TypedContractMethod<[ productId: BigNumberish, description: string ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setProductExternalUrl"): TypedContractMethod<[ productId: BigNumberish, externalUrl: string ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setProductImageUrl"): TypedContractMethod<[ productId: BigNumberish, imageUrl: string ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setProductName"): TypedContractMethod<[ productId: BigNumberish, name: string ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setProductTransferable"): TypedContractMethod<[ productId: BigNumberish, _isTransferable: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "totalProductSupply"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "unlinkPricing"): TypedContractMethod<[ productId: BigNumberish, pricingIds: BigNumberish[] ], [ void ], "nonpayable">; getEvent(key: "ProductCreated"): TypedContractEvent; getEvent(key: "ProductPricingLinkUpdate"): TypedContractEvent; getEvent(key: "ProductStatusChanged"): TypedContractEvent; getEvent(key: "ProductUpdated"): TypedContractEvent; filters: { "ProductCreated(uint256,uint256)": TypedContractEvent; ProductCreated: TypedContractEvent; "ProductPricingLinkUpdate(uint256,uint256,uint256,bool)": TypedContractEvent; ProductPricingLinkUpdate: TypedContractEvent; "ProductStatusChanged(uint256,uint256,bool)": TypedContractEvent; ProductStatusChanged: TypedContractEvent; "ProductUpdated(uint256,uint256)": TypedContractEvent; ProductUpdated: TypedContractEvent; }; }