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 IPurchaseManager { type ChangeSubscriptionPricingParamsStruct = { orgId: BigNumberish; productPassId: BigNumberish; productId: BigNumberish; newPricingId: BigNumberish; airdrop: boolean; }; type ChangeSubscriptionPricingParamsStructOutput = [ orgId: bigint, productPassId: bigint, productId: bigint, newPricingId: bigint, airdrop: boolean ] & { orgId: bigint; productPassId: bigint; productId: bigint; newPricingId: bigint; airdrop: boolean; }; type AdditionalPurchaseParamsStruct = { productPassId: BigNumberish; productIds: BigNumberish[]; pricingIds: BigNumberish[]; quantities: BigNumberish[]; couponCode: string; airdrop: boolean; pause: boolean; }; type AdditionalPurchaseParamsStructOutput = [ productPassId: bigint, productIds: bigint[], pricingIds: bigint[], quantities: bigint[], couponCode: string, airdrop: boolean, pause: boolean ] & { productPassId: bigint; productIds: bigint[]; pricingIds: bigint[]; quantities: bigint[]; couponCode: string; airdrop: boolean; pause: boolean; }; type InitialPurchaseParamsStruct = { to: AddressLike; organizationId: BigNumberish; productIds: BigNumberish[]; pricingIds: BigNumberish[]; quantities: BigNumberish[]; discountIds: BigNumberish[]; couponCode: string; airdrop: boolean; pause: boolean; }; type InitialPurchaseParamsStructOutput = [ to: string, organizationId: bigint, productIds: bigint[], pricingIds: bigint[], quantities: bigint[], discountIds: bigint[], couponCode: string, airdrop: boolean, pause: boolean ] & { to: string; organizationId: bigint; productIds: bigint[]; pricingIds: bigint[]; quantities: bigint[]; discountIds: bigint[]; couponCode: string; airdrop: boolean; pause: boolean; }; } export interface PurchaseManagerInterface extends Interface { getFunction(nameOrSignature: "acceptOwnership" | "cancelSubscription" | "cancelSubscriptionBatch" | "changeSubscriptionPricing" | "changeTieredSubscriptionUnitQuantity" | "dynamicPriceRegistry" | "owner" | "passSupply" | "pausePurchases" | "pauseSubscription" | "pauseSubscriptionBatch" | "paused" | "pendingOwner" | "permissionRegistry" | "purchaseAdditionalProducts" | "purchaseProducts" | "registry" | "renewSubscription" | "renewSubscriptionBatch" | "renounceOwnership" | "setDynamicPriceRegistry" | "setPermissionRegistry" | "supportsInterface" | "transferOwnership" | "unpausePurchases"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "DynamicPriceRegistryUpdated" | "OwnershipTransferStarted" | "OwnershipTransferred" | "Paused" | "PerformPurchase" | "ProductsPurchased" | "SubscriptionRenewed" | "Unpaused"): EventFragment; encodeFunctionData(functionFragment: "acceptOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "cancelSubscription", values: [BigNumberish, BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "cancelSubscriptionBatch", values: [BigNumberish, BigNumberish[], boolean[]]): string; encodeFunctionData(functionFragment: "changeSubscriptionPricing", values: [IPurchaseManager.ChangeSubscriptionPricingParamsStruct]): string; encodeFunctionData(functionFragment: "changeTieredSubscriptionUnitQuantity", values: [BigNumberish, BigNumberish, BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "dynamicPriceRegistry", values?: undefined): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "passSupply", values?: undefined): string; encodeFunctionData(functionFragment: "pausePurchases", values?: undefined): string; encodeFunctionData(functionFragment: "pauseSubscription", values: [BigNumberish, BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "pauseSubscriptionBatch", values: [BigNumberish, BigNumberish[], boolean[]]): string; encodeFunctionData(functionFragment: "paused", values?: undefined): string; encodeFunctionData(functionFragment: "pendingOwner", values?: undefined): string; encodeFunctionData(functionFragment: "permissionRegistry", values?: undefined): string; encodeFunctionData(functionFragment: "purchaseAdditionalProducts", values: [IPurchaseManager.AdditionalPurchaseParamsStruct]): string; encodeFunctionData(functionFragment: "purchaseProducts", values: [IPurchaseManager.InitialPurchaseParamsStruct]): string; encodeFunctionData(functionFragment: "registry", values?: undefined): string; encodeFunctionData(functionFragment: "renewSubscription", values: [BigNumberish, BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "renewSubscriptionBatch", values: [BigNumberish, BigNumberish[], boolean]): string; encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "setDynamicPriceRegistry", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setPermissionRegistry", values: [AddressLike]): string; encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string; encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string; encodeFunctionData(functionFragment: "unpausePurchases", values?: undefined): string; decodeFunctionResult(functionFragment: "acceptOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "cancelSubscription", data: BytesLike): Result; decodeFunctionResult(functionFragment: "cancelSubscriptionBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "changeSubscriptionPricing", data: BytesLike): Result; decodeFunctionResult(functionFragment: "changeTieredSubscriptionUnitQuantity", data: BytesLike): Result; decodeFunctionResult(functionFragment: "dynamicPriceRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "passSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pausePurchases", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pauseSubscription", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pauseSubscriptionBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pendingOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "permissionRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "purchaseAdditionalProducts", data: BytesLike): Result; decodeFunctionResult(functionFragment: "purchaseProducts", data: BytesLike): Result; decodeFunctionResult(functionFragment: "registry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renewSubscription", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renewSubscriptionBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDynamicPriceRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPermissionRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "unpausePurchases", data: BytesLike): Result; } export declare namespace DynamicPriceRegistryUpdatedEvent { type InputTuple = [_dynamicPriceRegistry: AddressLike]; type OutputTuple = [_dynamicPriceRegistry: string]; interface OutputObject { _dynamicPriceRegistry: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OwnershipTransferStartedEvent { type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; type OutputTuple = [previousOwner: string, newOwner: string]; interface OutputObject { previousOwner: string; newOwner: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace OwnershipTransferredEvent { type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike]; type OutputTuple = [previousOwner: string, newOwner: string]; interface OutputObject { previousOwner: string; newOwner: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PausedEvent { type InputTuple = [account: AddressLike]; type OutputTuple = [account: string]; interface OutputObject { account: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PerformPurchaseEvent { type InputTuple = [ orgId: BigNumberish, passOwner: AddressLike, purchaser: AddressLike, token: AddressLike, amountPaid: BigNumberish ]; type OutputTuple = [ orgId: bigint, passOwner: string, purchaser: string, token: string, amountPaid: bigint ]; interface OutputObject { orgId: bigint; passOwner: string; purchaser: string; token: string; amountPaid: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace ProductsPurchasedEvent { type InputTuple = [ orgId: BigNumberish, productPassId: BigNumberish, passOwner: AddressLike, productIds: BigNumberish[], pricingIds: BigNumberish[], quantities: BigNumberish[], token: AddressLike, amountPaid: BigNumberish ]; type OutputTuple = [ orgId: bigint, productPassId: bigint, passOwner: string, productIds: bigint[], pricingIds: bigint[], quantities: bigint[], token: string, amountPaid: bigint ]; interface OutputObject { orgId: bigint; productPassId: bigint; passOwner: string; productIds: bigint[]; pricingIds: bigint[]; quantities: bigint[]; token: string; amountPaid: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace SubscriptionRenewedEvent { type InputTuple = [ orgId: BigNumberish, productPassId: BigNumberish, productId: BigNumberish, purchaser: AddressLike, token: AddressLike, subtotalAmount: BigNumberish ]; type OutputTuple = [ orgId: bigint, productPassId: bigint, productId: bigint, purchaser: string, token: string, subtotalAmount: bigint ]; interface OutputObject { orgId: bigint; productPassId: bigint; productId: bigint; purchaser: string; token: string; subtotalAmount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace UnpausedEvent { type InputTuple = [account: AddressLike]; type OutputTuple = [account: string]; interface OutputObject { account: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface PurchaseManager extends BaseContract { connect(runner?: ContractRunner | null): PurchaseManager; waitForDeployment(): Promise; interface: PurchaseManagerInterface; 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; acceptOwnership: TypedContractMethod<[], [void], "nonpayable">; cancelSubscription: TypedContractMethod<[ productPassId: BigNumberish, productId: BigNumberish, cancel: boolean ], [ void ], "nonpayable">; cancelSubscriptionBatch: TypedContractMethod<[ productPassId: BigNumberish, productIds: BigNumberish[], cancel: boolean[] ], [ void ], "nonpayable">; changeSubscriptionPricing: TypedContractMethod<[ params: IPurchaseManager.ChangeSubscriptionPricingParamsStruct ], [ void ], "nonpayable">; changeTieredSubscriptionUnitQuantity: TypedContractMethod<[ productPassId: BigNumberish, productId: BigNumberish, quantity: BigNumberish, airdrop: boolean ], [ void ], "nonpayable">; dynamicPriceRegistry: TypedContractMethod<[], [string], "view">; owner: TypedContractMethod<[], [string], "view">; passSupply: TypedContractMethod<[], [bigint], "view">; pausePurchases: TypedContractMethod<[], [void], "nonpayable">; pauseSubscription: TypedContractMethod<[ productPassId: BigNumberish, productId: BigNumberish, _pause: boolean ], [ void ], "nonpayable">; pauseSubscriptionBatch: TypedContractMethod<[ productPassId: BigNumberish, productIds: BigNumberish[], pause: boolean[] ], [ void ], "nonpayable">; paused: TypedContractMethod<[], [boolean], "view">; pendingOwner: TypedContractMethod<[], [string], "view">; permissionRegistry: TypedContractMethod<[], [string], "view">; purchaseAdditionalProducts: TypedContractMethod<[ params: IPurchaseManager.AdditionalPurchaseParamsStruct ], [ void ], "payable">; purchaseProducts: TypedContractMethod<[ params: IPurchaseManager.InitialPurchaseParamsStruct ], [ void ], "payable">; registry: TypedContractMethod<[], [string], "view">; renewSubscription: TypedContractMethod<[ productPassId: BigNumberish, productId: BigNumberish, airdrop: boolean ], [ void ], "nonpayable">; renewSubscriptionBatch: TypedContractMethod<[ productPassId: BigNumberish, productIds: BigNumberish[], airdrop: boolean ], [ void ], "nonpayable">; renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; setDynamicPriceRegistry: TypedContractMethod<[ _dynamicPriceRegistry: AddressLike ], [ void ], "nonpayable">; setPermissionRegistry: TypedContractMethod<[ _permissionRegistry: AddressLike ], [ void ], "nonpayable">; supportsInterface: TypedContractMethod<[ interfaceId: BytesLike ], [ boolean ], "view">; transferOwnership: TypedContractMethod<[ newOwner: AddressLike ], [ void ], "nonpayable">; unpausePurchases: TypedContractMethod<[], [void], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "acceptOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "cancelSubscription"): TypedContractMethod<[ productPassId: BigNumberish, productId: BigNumberish, cancel: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "cancelSubscriptionBatch"): TypedContractMethod<[ productPassId: BigNumberish, productIds: BigNumberish[], cancel: boolean[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "changeSubscriptionPricing"): TypedContractMethod<[ params: IPurchaseManager.ChangeSubscriptionPricingParamsStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "changeTieredSubscriptionUnitQuantity"): TypedContractMethod<[ productPassId: BigNumberish, productId: BigNumberish, quantity: BigNumberish, airdrop: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "dynamicPriceRegistry"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "passSupply"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "pausePurchases"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "pauseSubscription"): TypedContractMethod<[ productPassId: BigNumberish, productId: BigNumberish, _pause: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "pauseSubscriptionBatch"): TypedContractMethod<[ productPassId: BigNumberish, productIds: BigNumberish[], pause: boolean[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "paused"): TypedContractMethod<[], [boolean], "view">; getFunction(nameOrSignature: "pendingOwner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "permissionRegistry"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "purchaseAdditionalProducts"): TypedContractMethod<[ params: IPurchaseManager.AdditionalPurchaseParamsStruct ], [ void ], "payable">; getFunction(nameOrSignature: "purchaseProducts"): TypedContractMethod<[ params: IPurchaseManager.InitialPurchaseParamsStruct ], [ void ], "payable">; getFunction(nameOrSignature: "registry"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "renewSubscription"): TypedContractMethod<[ productPassId: BigNumberish, productId: BigNumberish, airdrop: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "renewSubscriptionBatch"): TypedContractMethod<[ productPassId: BigNumberish, productIds: BigNumberish[], airdrop: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "setDynamicPriceRegistry"): TypedContractMethod<[ _dynamicPriceRegistry: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setPermissionRegistry"): TypedContractMethod<[ _permissionRegistry: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "unpausePurchases"): TypedContractMethod<[], [void], "nonpayable">; getEvent(key: "DynamicPriceRegistryUpdated"): TypedContractEvent; getEvent(key: "OwnershipTransferStarted"): TypedContractEvent; getEvent(key: "OwnershipTransferred"): TypedContractEvent; getEvent(key: "Paused"): TypedContractEvent; getEvent(key: "PerformPurchase"): TypedContractEvent; getEvent(key: "ProductsPurchased"): TypedContractEvent; getEvent(key: "SubscriptionRenewed"): TypedContractEvent; getEvent(key: "Unpaused"): TypedContractEvent; filters: { "DynamicPriceRegistryUpdated(address)": TypedContractEvent; DynamicPriceRegistryUpdated: TypedContractEvent; "OwnershipTransferStarted(address,address)": TypedContractEvent; OwnershipTransferStarted: TypedContractEvent; "OwnershipTransferred(address,address)": TypedContractEvent; OwnershipTransferred: TypedContractEvent; "Paused(address)": TypedContractEvent; Paused: TypedContractEvent; "PerformPurchase(uint256,address,address,address,uint256)": TypedContractEvent; PerformPurchase: TypedContractEvent; "ProductsPurchased(uint256,uint256,address,uint256[],uint256[],uint256[],address,uint256)": TypedContractEvent; ProductsPurchased: TypedContractEvent; "SubscriptionRenewed(uint256,uint256,uint256,address,address,uint256)": TypedContractEvent; SubscriptionRenewed: TypedContractEvent; "Unpaused(address)": TypedContractEvent; Unpaused: TypedContractEvent; }; }