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 IPurchaseManagerInterface extends Interface { getFunction(nameOrSignature: "cancelSubscription" | "cancelSubscriptionBatch" | "changeSubscriptionPricing" | "changeTieredSubscriptionUnitQuantity" | "passSupply" | "pausePurchases" | "pauseSubscription" | "pauseSubscriptionBatch" | "purchaseAdditionalProducts" | "purchaseProducts" | "renewSubscription" | "renewSubscriptionBatch" | "unpausePurchases"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "PerformPurchase" | "ProductsPurchased"): EventFragment; 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: "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: "purchaseAdditionalProducts", values: [IPurchaseManager.AdditionalPurchaseParamsStruct]): string; encodeFunctionData(functionFragment: "purchaseProducts", values: [IPurchaseManager.InitialPurchaseParamsStruct]): string; encodeFunctionData(functionFragment: "renewSubscription", values: [BigNumberish, BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "renewSubscriptionBatch", values: [BigNumberish, BigNumberish[], boolean]): string; encodeFunctionData(functionFragment: "unpausePurchases", values?: undefined): string; 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: "passSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pausePurchases", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pauseSubscription", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pauseSubscriptionBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "purchaseAdditionalProducts", data: BytesLike): Result; decodeFunctionResult(functionFragment: "purchaseProducts", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renewSubscription", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renewSubscriptionBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "unpausePurchases", data: BytesLike): Result; } 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 interface IPurchaseManager extends BaseContract { connect(runner?: ContractRunner | null): IPurchaseManager; waitForDeployment(): Promise; interface: IPurchaseManagerInterface; 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; 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">; 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">; purchaseAdditionalProducts: TypedContractMethod<[ params: IPurchaseManager.AdditionalPurchaseParamsStruct ], [ void ], "payable">; purchaseProducts: TypedContractMethod<[ params: IPurchaseManager.InitialPurchaseParamsStruct ], [ void ], "payable">; renewSubscription: TypedContractMethod<[ productPassId: BigNumberish, productId: BigNumberish, airdrop: boolean ], [ void ], "nonpayable">; renewSubscriptionBatch: TypedContractMethod<[ productPassId: BigNumberish, productIds: BigNumberish[], airdrop: boolean ], [ void ], "nonpayable">; unpausePurchases: TypedContractMethod<[], [void], "nonpayable">; getFunction(key: string | FunctionFragment): T; 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: "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: "purchaseAdditionalProducts"): TypedContractMethod<[ params: IPurchaseManager.AdditionalPurchaseParamsStruct ], [ void ], "payable">; getFunction(nameOrSignature: "purchaseProducts"): TypedContractMethod<[ params: IPurchaseManager.InitialPurchaseParamsStruct ], [ void ], "payable">; 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: "unpausePurchases"): TypedContractMethod<[], [void], "nonpayable">; getEvent(key: "PerformPurchase"): TypedContractEvent; getEvent(key: "ProductsPurchased"): TypedContractEvent; filters: { "PerformPurchase(uint256,address,address,address,uint256)": TypedContractEvent; PerformPurchase: TypedContractEvent; "ProductsPurchased(uint256,uint256,address,uint256[],uint256[],uint256[],address,uint256)": TypedContractEvent; ProductsPurchased: TypedContractEvent; }; }