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 ICouponRegistry { type CreateCouponParamsStruct = { orgId: BigNumberish; code: string; discount: BigNumberish; expiration: BigNumberish; maxTotalRedemptions: BigNumberish; isInitialPurchaseOnly: boolean; isActive: boolean; isRestricted: boolean; isOneTimeUse: boolean; }; type CreateCouponParamsStructOutput = [ orgId: bigint, code: string, discount: bigint, expiration: bigint, maxTotalRedemptions: bigint, isInitialPurchaseOnly: boolean, isActive: boolean, isRestricted: boolean, isOneTimeUse: boolean ] & { orgId: bigint; code: string; discount: bigint; expiration: bigint; maxTotalRedemptions: bigint; isInitialPurchaseOnly: boolean; isActive: boolean; isRestricted: boolean; isOneTimeUse: boolean; }; type CouponStruct = { orgId: BigNumberish; code: string; discount: BigNumberish; expiration: BigNumberish; totalRedemptions: BigNumberish; maxTotalRedemptions: BigNumberish; isInitialPurchaseOnly: boolean; isActive: boolean; isRestricted: boolean; isOneTimeUse: boolean; }; type CouponStructOutput = [ orgId: bigint, code: string, discount: bigint, expiration: bigint, totalRedemptions: bigint, maxTotalRedemptions: bigint, isInitialPurchaseOnly: boolean, isActive: boolean, isRestricted: boolean, isOneTimeUse: boolean ] & { orgId: bigint; code: string; discount: bigint; expiration: bigint; totalRedemptions: bigint; maxTotalRedemptions: bigint; isInitialPurchaseOnly: boolean; isActive: boolean; isRestricted: boolean; isOneTimeUse: boolean; }; } export interface ICouponRegistryInterface extends Interface { getFunction(nameOrSignature: "createCoupon" | "discountedAmount" | "getCoupon" | "getOrgCouponIds" | "getOrgCoupons" | "getRedeemedCoupons" | "hasPassCouponCode" | "hasRedeemedCoupon" | "isCodeRedeemable" | "orgCouponCodes" | "orgCouponExists" | "passOwnerCodes" | "redeemCoupon" | "removePassCouponCode" | "setCouponActive" | "setCouponDiscount" | "setCouponExpiration" | "setCouponMaxRedemptions" | "setCouponNewCustomers" | "setCouponRestricted" | "setPassCouponCode" | "setPassCouponCodeBatch" | "setRestrictedAccess" | "totalCoupons"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "CouponCreated" | "CouponRedeemed" | "CouponStatusUpdated" | "CouponUpdated" | "PassCouponCodeSet"): EventFragment; encodeFunctionData(functionFragment: "createCoupon", values: [ICouponRegistry.CreateCouponParamsStruct]): string; encodeFunctionData(functionFragment: "discountedAmount", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "getCoupon", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getOrgCouponIds", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getOrgCoupons", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getRedeemedCoupons", values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "hasPassCouponCode", values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "hasRedeemedCoupon", values: [BigNumberish, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "isCodeRedeemable", values: [BigNumberish, AddressLike, string, boolean]): string; encodeFunctionData(functionFragment: "orgCouponCodes", values: [BigNumberish, string]): string; encodeFunctionData(functionFragment: "orgCouponExists", values: [BigNumberish, string]): string; encodeFunctionData(functionFragment: "passOwnerCodes", values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "redeemCoupon", values: [BigNumberish, AddressLike, boolean, BigNumberish]): string; encodeFunctionData(functionFragment: "removePassCouponCode", values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "setCouponActive", values: [BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "setCouponDiscount", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "setCouponExpiration", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "setCouponMaxRedemptions", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "setCouponNewCustomers", values: [BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "setCouponRestricted", values: [BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "setPassCouponCode", values: [BigNumberish, AddressLike, string]): string; encodeFunctionData(functionFragment: "setPassCouponCodeBatch", values: [BigNumberish, AddressLike[], string[]]): string; encodeFunctionData(functionFragment: "setRestrictedAccess", values: [BigNumberish, AddressLike[], boolean[]]): string; encodeFunctionData(functionFragment: "totalCoupons", values?: undefined): string; decodeFunctionResult(functionFragment: "createCoupon", data: BytesLike): Result; decodeFunctionResult(functionFragment: "discountedAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCoupon", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOrgCouponIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOrgCoupons", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRedeemedCoupons", data: BytesLike): Result; decodeFunctionResult(functionFragment: "hasPassCouponCode", data: BytesLike): Result; decodeFunctionResult(functionFragment: "hasRedeemedCoupon", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isCodeRedeemable", data: BytesLike): Result; decodeFunctionResult(functionFragment: "orgCouponCodes", data: BytesLike): Result; decodeFunctionResult(functionFragment: "orgCouponExists", data: BytesLike): Result; decodeFunctionResult(functionFragment: "passOwnerCodes", data: BytesLike): Result; decodeFunctionResult(functionFragment: "redeemCoupon", data: BytesLike): Result; decodeFunctionResult(functionFragment: "removePassCouponCode", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setCouponActive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setCouponDiscount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setCouponExpiration", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setCouponMaxRedemptions", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setCouponNewCustomers", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setCouponRestricted", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPassCouponCode", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPassCouponCodeBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setRestrictedAccess", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalCoupons", data: BytesLike): Result; } export declare namespace CouponCreatedEvent { type InputTuple = [orgId: BigNumberish, couponId: BigNumberish]; type OutputTuple = [orgId: bigint, couponId: bigint]; interface OutputObject { orgId: bigint; couponId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace CouponRedeemedEvent { type InputTuple = [ orgId: BigNumberish, couponId: BigNumberish, passOwner: AddressLike ]; type OutputTuple = [ orgId: bigint, couponId: bigint, passOwner: string ]; interface OutputObject { orgId: bigint; couponId: bigint; passOwner: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace CouponStatusUpdatedEvent { type InputTuple = [ orgId: BigNumberish, couponId: BigNumberish, isActive: boolean ]; type OutputTuple = [ orgId: bigint, couponId: bigint, isActive: boolean ]; interface OutputObject { orgId: bigint; couponId: bigint; isActive: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace CouponUpdatedEvent { type InputTuple = [orgId: BigNumberish, couponId: BigNumberish]; type OutputTuple = [orgId: bigint, couponId: bigint]; interface OutputObject { orgId: bigint; couponId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PassCouponCodeSetEvent { type InputTuple = [ orgId: BigNumberish, passOwner: AddressLike, code: string ]; type OutputTuple = [orgId: bigint, passOwner: string, code: string]; interface OutputObject { orgId: bigint; passOwner: string; code: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface ICouponRegistry extends BaseContract { connect(runner?: ContractRunner | null): ICouponRegistry; waitForDeployment(): Promise; interface: ICouponRegistryInterface; 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; createCoupon: TypedContractMethod<[ params: ICouponRegistry.CreateCouponParamsStruct ], [ void ], "nonpayable">; discountedAmount: TypedContractMethod<[ couponId: BigNumberish, amount: BigNumberish ], [ bigint ], "view">; getCoupon: TypedContractMethod<[ couponId: BigNumberish ], [ ICouponRegistry.CouponStructOutput ], "view">; getOrgCouponIds: TypedContractMethod<[ orgId: BigNumberish ], [ bigint[] ], "view">; getOrgCoupons: TypedContractMethod<[ orgId: BigNumberish ], [ ICouponRegistry.CouponStructOutput[] ], "view">; getRedeemedCoupons: TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike ], [ bigint[] ], "view">; hasPassCouponCode: TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike ], [ boolean ], "view">; hasRedeemedCoupon: TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike, couponId: BigNumberish ], [ boolean ], "view">; isCodeRedeemable: TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike, code: string, isInitialPurchase: boolean ], [ bigint ], "view">; orgCouponCodes: TypedContractMethod<[ orgId: BigNumberish, code: string ], [ bigint ], "view">; orgCouponExists: TypedContractMethod<[ orgId: BigNumberish, code: string ], [ boolean ], "view">; passOwnerCodes: TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike ], [ string ], "view">; redeemCoupon: TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike, isInitialPurchase: boolean, amount: BigNumberish ], [ bigint ], "nonpayable">; removePassCouponCode: TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike ], [ void ], "nonpayable">; setCouponActive: TypedContractMethod<[ couponId: BigNumberish, active: boolean ], [ void ], "nonpayable">; setCouponDiscount: TypedContractMethod<[ couponId: BigNumberish, discount: BigNumberish ], [ void ], "nonpayable">; setCouponExpiration: TypedContractMethod<[ couponId: BigNumberish, expiration: BigNumberish ], [ void ], "nonpayable">; setCouponMaxRedemptions: TypedContractMethod<[ couponId: BigNumberish, maxTotalRedemptions: BigNumberish ], [ void ], "nonpayable">; setCouponNewCustomers: TypedContractMethod<[ couponId: BigNumberish, isInitialPurchaseOnly: boolean ], [ void ], "nonpayable">; setCouponRestricted: TypedContractMethod<[ couponId: BigNumberish, restricted: boolean ], [ void ], "nonpayable">; setPassCouponCode: TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike, code: string ], [ void ], "nonpayable">; setPassCouponCodeBatch: TypedContractMethod<[ orgId: BigNumberish, passOwners: AddressLike[], codes: string[] ], [ void ], "nonpayable">; setRestrictedAccess: TypedContractMethod<[ couponId: BigNumberish, passOwners: AddressLike[], restricted: boolean[] ], [ void ], "nonpayable">; totalCoupons: TypedContractMethod<[], [bigint], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "createCoupon"): TypedContractMethod<[ params: ICouponRegistry.CreateCouponParamsStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "discountedAmount"): TypedContractMethod<[ couponId: BigNumberish, amount: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "getCoupon"): TypedContractMethod<[ couponId: BigNumberish ], [ ICouponRegistry.CouponStructOutput ], "view">; getFunction(nameOrSignature: "getOrgCouponIds"): TypedContractMethod<[orgId: BigNumberish], [bigint[]], "view">; getFunction(nameOrSignature: "getOrgCoupons"): TypedContractMethod<[ orgId: BigNumberish ], [ ICouponRegistry.CouponStructOutput[] ], "view">; getFunction(nameOrSignature: "getRedeemedCoupons"): TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike ], [ bigint[] ], "view">; getFunction(nameOrSignature: "hasPassCouponCode"): TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike ], [ boolean ], "view">; getFunction(nameOrSignature: "hasRedeemedCoupon"): TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike, couponId: BigNumberish ], [ boolean ], "view">; getFunction(nameOrSignature: "isCodeRedeemable"): TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike, code: string, isInitialPurchase: boolean ], [ bigint ], "view">; getFunction(nameOrSignature: "orgCouponCodes"): TypedContractMethod<[orgId: BigNumberish, code: string], [bigint], "view">; getFunction(nameOrSignature: "orgCouponExists"): TypedContractMethod<[ orgId: BigNumberish, code: string ], [ boolean ], "view">; getFunction(nameOrSignature: "passOwnerCodes"): TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike ], [ string ], "view">; getFunction(nameOrSignature: "redeemCoupon"): TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike, isInitialPurchase: boolean, amount: BigNumberish ], [ bigint ], "nonpayable">; getFunction(nameOrSignature: "removePassCouponCode"): TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setCouponActive"): TypedContractMethod<[ couponId: BigNumberish, active: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setCouponDiscount"): TypedContractMethod<[ couponId: BigNumberish, discount: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setCouponExpiration"): TypedContractMethod<[ couponId: BigNumberish, expiration: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setCouponMaxRedemptions"): TypedContractMethod<[ couponId: BigNumberish, maxTotalRedemptions: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setCouponNewCustomers"): TypedContractMethod<[ couponId: BigNumberish, isInitialPurchaseOnly: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setCouponRestricted"): TypedContractMethod<[ couponId: BigNumberish, restricted: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setPassCouponCode"): TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike, code: string ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setPassCouponCodeBatch"): TypedContractMethod<[ orgId: BigNumberish, passOwners: AddressLike[], codes: string[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setRestrictedAccess"): TypedContractMethod<[ couponId: BigNumberish, passOwners: AddressLike[], restricted: boolean[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "totalCoupons"): TypedContractMethod<[], [bigint], "view">; getEvent(key: "CouponCreated"): TypedContractEvent; getEvent(key: "CouponRedeemed"): TypedContractEvent; getEvent(key: "CouponStatusUpdated"): TypedContractEvent; getEvent(key: "CouponUpdated"): TypedContractEvent; getEvent(key: "PassCouponCodeSet"): TypedContractEvent; filters: { "CouponCreated(uint256,uint256)": TypedContractEvent; CouponCreated: TypedContractEvent; "CouponRedeemed(uint256,uint256,address)": TypedContractEvent; CouponRedeemed: TypedContractEvent; "CouponStatusUpdated(uint256,uint256,bool)": TypedContractEvent; CouponStatusUpdated: TypedContractEvent; "CouponUpdated(uint256,uint256)": TypedContractEvent; CouponUpdated: TypedContractEvent; "PassCouponCodeSet(uint256,address,string)": TypedContractEvent; PassCouponCodeSet: TypedContractEvent; }; }