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 IDiscountRegistry { type CreateDiscountParamsStruct = { orgId: BigNumberish; name: string; discount: BigNumberish; maxMints: BigNumberish; isActive: boolean; isRestricted: boolean; }; type CreateDiscountParamsStructOutput = [ orgId: bigint, name: string, discount: bigint, maxMints: bigint, isActive: boolean, isRestricted: boolean ] & { orgId: bigint; name: string; discount: bigint; maxMints: bigint; isActive: boolean; isRestricted: boolean; }; type DiscountStruct = { id: BigNumberish; orgId: BigNumberish; name: string; discount: BigNumberish; totalMints: BigNumberish; maxMints: BigNumberish; isActive: boolean; isRestricted: boolean; }; type DiscountStructOutput = [ id: bigint, orgId: bigint, name: string, discount: bigint, totalMints: bigint, maxMints: bigint, isActive: boolean, isRestricted: boolean ] & { id: bigint; orgId: bigint; name: string; discount: bigint; totalMints: bigint; maxMints: bigint; isActive: boolean; isRestricted: boolean; }; } export interface DiscountRegistryInterface extends Interface { getFunction(nameOrSignature: "calculateTotalDiscountedAmount" | "calculateTotalPassDiscountedAmount" | "canMintDiscount" | "canMintDiscountByName" | "canMintDiscountByNameBatch" | "createDiscount" | "discountNames" | "getDiscount" | "getDiscountBatch" | "getDiscountNames" | "getOrgDiscountIds" | "getPassDiscountIds" | "getRestrictedAccess" | "getTotalDiscount" | "getTotalPassDiscount" | "hasPassDiscount" | "hasRestrictedAccess" | "mintDiscountsToPass" | "mintDiscountsToPassByOrg" | "mintDiscountsToPassByOwner" | "registry" | "setDiscount" | "setDiscountActive" | "setDiscountMaxMints" | "setDiscountName" | "setDiscountRestricted" | "setRestrictedAccess" | "supportsInterface" | "totalDiscounts"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "DiscountCreated" | "DiscountMinted" | "DiscountUpdated" | "RestrictedAccessUpdated"): EventFragment; encodeFunctionData(functionFragment: "calculateTotalDiscountedAmount", values: [BigNumberish[], BigNumberish]): string; encodeFunctionData(functionFragment: "calculateTotalPassDiscountedAmount", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "canMintDiscount", values: [BigNumberish, BigNumberish, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "canMintDiscountByName", values: [BigNumberish, BigNumberish, AddressLike, string]): string; encodeFunctionData(functionFragment: "canMintDiscountByNameBatch", values: [BigNumberish, BigNumberish, AddressLike, string[]]): string; encodeFunctionData(functionFragment: "createDiscount", values: [IDiscountRegistry.CreateDiscountParamsStruct]): string; encodeFunctionData(functionFragment: "discountNames", values: [BigNumberish, string]): string; encodeFunctionData(functionFragment: "getDiscount", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getDiscountBatch", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "getDiscountNames", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "getOrgDiscountIds", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getPassDiscountIds", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getRestrictedAccess", values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "getTotalDiscount", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "getTotalPassDiscount", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "hasPassDiscount", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "hasRestrictedAccess", values: [BigNumberish, AddressLike, BigNumberish]): string; encodeFunctionData(functionFragment: "mintDiscountsToPass", values: [BigNumberish, BigNumberish, AddressLike, BigNumberish[]]): string; encodeFunctionData(functionFragment: "mintDiscountsToPassByOrg", values: [BigNumberish, BigNumberish[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "mintDiscountsToPassByOwner", values: [BigNumberish, BigNumberish[]]): string; encodeFunctionData(functionFragment: "registry", values?: undefined): string; encodeFunctionData(functionFragment: "setDiscount", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "setDiscountActive", values: [BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "setDiscountMaxMints", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "setDiscountName", values: [BigNumberish, string]): string; encodeFunctionData(functionFragment: "setDiscountRestricted", values: [BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "setRestrictedAccess", values: [BigNumberish, AddressLike[], boolean[]]): string; encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string; encodeFunctionData(functionFragment: "totalDiscounts", values?: undefined): string; decodeFunctionResult(functionFragment: "calculateTotalDiscountedAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "calculateTotalPassDiscountedAmount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "canMintDiscount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "canMintDiscountByName", data: BytesLike): Result; decodeFunctionResult(functionFragment: "canMintDiscountByNameBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createDiscount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "discountNames", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDiscount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDiscountBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDiscountNames", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOrgDiscountIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPassDiscountIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getRestrictedAccess", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTotalDiscount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getTotalPassDiscount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "hasPassDiscount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "hasRestrictedAccess", data: BytesLike): Result; decodeFunctionResult(functionFragment: "mintDiscountsToPass", data: BytesLike): Result; decodeFunctionResult(functionFragment: "mintDiscountsToPassByOrg", data: BytesLike): Result; decodeFunctionResult(functionFragment: "mintDiscountsToPassByOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "registry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDiscount", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDiscountActive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDiscountMaxMints", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDiscountName", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDiscountRestricted", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setRestrictedAccess", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalDiscounts", data: BytesLike): Result; } export declare namespace DiscountCreatedEvent { type InputTuple = [ orgId: BigNumberish, discountId: BigNumberish, name: string, discount: BigNumberish ]; type OutputTuple = [ orgId: bigint, discountId: bigint, name: string, discount: bigint ]; interface OutputObject { orgId: bigint; discountId: bigint; name: string; discount: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace DiscountMintedEvent { type InputTuple = [ orgId: BigNumberish, passId: BigNumberish, discountId: BigNumberish, minter: AddressLike ]; type OutputTuple = [ orgId: bigint, passId: bigint, discountId: bigint, minter: string ]; interface OutputObject { orgId: bigint; passId: bigint; discountId: bigint; minter: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace DiscountUpdatedEvent { type InputTuple = [orgId: BigNumberish, discountId: BigNumberish]; type OutputTuple = [orgId: bigint, discountId: bigint]; interface OutputObject { orgId: bigint; discountId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RestrictedAccessUpdatedEvent { type InputTuple = [ orgId: BigNumberish, accessId: BigNumberish, passOwner: AddressLike, restricted: boolean ]; type OutputTuple = [ orgId: bigint, accessId: bigint, passOwner: string, restricted: boolean ]; interface OutputObject { orgId: bigint; accessId: bigint; passOwner: string; restricted: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface DiscountRegistry extends BaseContract { connect(runner?: ContractRunner | null): DiscountRegistry; waitForDeployment(): Promise; interface: DiscountRegistryInterface; 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; calculateTotalDiscountedAmount: TypedContractMethod<[ discountIds: BigNumberish[], amount: BigNumberish ], [ bigint ], "view">; calculateTotalPassDiscountedAmount: TypedContractMethod<[ passId: BigNumberish, amount: BigNumberish ], [ bigint ], "view">; canMintDiscount: TypedContractMethod<[ orgId: BigNumberish, passId: BigNumberish, minter: AddressLike, discountId: BigNumberish ], [ void ], "view">; canMintDiscountByName: TypedContractMethod<[ orgId: BigNumberish, passId: BigNumberish, minter: AddressLike, name: string ], [ bigint ], "view">; canMintDiscountByNameBatch: TypedContractMethod<[ orgId: BigNumberish, passId: BigNumberish, minter: AddressLike, names: string[] ], [ bigint[] ], "view">; createDiscount: TypedContractMethod<[ params: IDiscountRegistry.CreateDiscountParamsStruct ], [ void ], "nonpayable">; discountNames: TypedContractMethod<[ arg0: BigNumberish, arg1: string ], [ bigint ], "view">; getDiscount: TypedContractMethod<[ discountId: BigNumberish ], [ IDiscountRegistry.DiscountStructOutput ], "view">; getDiscountBatch: TypedContractMethod<[ discountIds: BigNumberish[] ], [ IDiscountRegistry.DiscountStructOutput[] ], "view">; getDiscountNames: TypedContractMethod<[ discountIds: BigNumberish[] ], [ string[] ], "view">; getOrgDiscountIds: TypedContractMethod<[ orgId: BigNumberish ], [ bigint[] ], "view">; getPassDiscountIds: TypedContractMethod<[ passId: BigNumberish ], [ bigint[] ], "view">; getRestrictedAccess: TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike ], [ bigint[] ], "view">; getTotalDiscount: TypedContractMethod<[ discountIds: BigNumberish[] ], [ bigint ], "view">; getTotalPassDiscount: TypedContractMethod<[ passId: BigNumberish ], [ bigint ], "view">; hasPassDiscount: TypedContractMethod<[ passId: BigNumberish, discountId: BigNumberish ], [ boolean ], "view">; hasRestrictedAccess: TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike, accessId: BigNumberish ], [ boolean ], "view">; mintDiscountsToPass: TypedContractMethod<[ orgId: BigNumberish, passId: BigNumberish, minter: AddressLike, discountIds: BigNumberish[] ], [ void ], "nonpayable">; mintDiscountsToPassByOrg: TypedContractMethod<[ orgId: BigNumberish, passIds: BigNumberish[], discountIds: BigNumberish[] ], [ void ], "nonpayable">; mintDiscountsToPassByOwner: TypedContractMethod<[ passId: BigNumberish, discountIds: BigNumberish[] ], [ void ], "nonpayable">; registry: TypedContractMethod<[], [string], "view">; setDiscount: TypedContractMethod<[ discountId: BigNumberish, discount: BigNumberish ], [ void ], "nonpayable">; setDiscountActive: TypedContractMethod<[ discountId: BigNumberish, isActive: boolean ], [ void ], "nonpayable">; setDiscountMaxMints: TypedContractMethod<[ discountId: BigNumberish, maxMints: BigNumberish ], [ void ], "nonpayable">; setDiscountName: TypedContractMethod<[ discountId: BigNumberish, name: string ], [ void ], "nonpayable">; setDiscountRestricted: TypedContractMethod<[ discountId: BigNumberish, isRestricted: boolean ], [ void ], "nonpayable">; setRestrictedAccess: TypedContractMethod<[ discountId: BigNumberish, passOwners: AddressLike[], restricted: boolean[] ], [ void ], "nonpayable">; supportsInterface: TypedContractMethod<[ interfaceId: BytesLike ], [ boolean ], "view">; totalDiscounts: TypedContractMethod<[], [bigint], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "calculateTotalDiscountedAmount"): TypedContractMethod<[ discountIds: BigNumberish[], amount: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "calculateTotalPassDiscountedAmount"): TypedContractMethod<[ passId: BigNumberish, amount: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "canMintDiscount"): TypedContractMethod<[ orgId: BigNumberish, passId: BigNumberish, minter: AddressLike, discountId: BigNumberish ], [ void ], "view">; getFunction(nameOrSignature: "canMintDiscountByName"): TypedContractMethod<[ orgId: BigNumberish, passId: BigNumberish, minter: AddressLike, name: string ], [ bigint ], "view">; getFunction(nameOrSignature: "canMintDiscountByNameBatch"): TypedContractMethod<[ orgId: BigNumberish, passId: BigNumberish, minter: AddressLike, names: string[] ], [ bigint[] ], "view">; getFunction(nameOrSignature: "createDiscount"): TypedContractMethod<[ params: IDiscountRegistry.CreateDiscountParamsStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "discountNames"): TypedContractMethod<[arg0: BigNumberish, arg1: string], [bigint], "view">; getFunction(nameOrSignature: "getDiscount"): TypedContractMethod<[ discountId: BigNumberish ], [ IDiscountRegistry.DiscountStructOutput ], "view">; getFunction(nameOrSignature: "getDiscountBatch"): TypedContractMethod<[ discountIds: BigNumberish[] ], [ IDiscountRegistry.DiscountStructOutput[] ], "view">; getFunction(nameOrSignature: "getDiscountNames"): TypedContractMethod<[discountIds: BigNumberish[]], [string[]], "view">; getFunction(nameOrSignature: "getOrgDiscountIds"): TypedContractMethod<[orgId: BigNumberish], [bigint[]], "view">; getFunction(nameOrSignature: "getPassDiscountIds"): TypedContractMethod<[passId: BigNumberish], [bigint[]], "view">; getFunction(nameOrSignature: "getRestrictedAccess"): TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike ], [ bigint[] ], "view">; getFunction(nameOrSignature: "getTotalDiscount"): TypedContractMethod<[discountIds: BigNumberish[]], [bigint], "view">; getFunction(nameOrSignature: "getTotalPassDiscount"): TypedContractMethod<[passId: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "hasPassDiscount"): TypedContractMethod<[ passId: BigNumberish, discountId: BigNumberish ], [ boolean ], "view">; getFunction(nameOrSignature: "hasRestrictedAccess"): TypedContractMethod<[ orgId: BigNumberish, passOwner: AddressLike, accessId: BigNumberish ], [ boolean ], "view">; getFunction(nameOrSignature: "mintDiscountsToPass"): TypedContractMethod<[ orgId: BigNumberish, passId: BigNumberish, minter: AddressLike, discountIds: BigNumberish[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "mintDiscountsToPassByOrg"): TypedContractMethod<[ orgId: BigNumberish, passIds: BigNumberish[], discountIds: BigNumberish[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "mintDiscountsToPassByOwner"): TypedContractMethod<[ passId: BigNumberish, discountIds: BigNumberish[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "registry"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "setDiscount"): TypedContractMethod<[ discountId: BigNumberish, discount: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setDiscountActive"): TypedContractMethod<[ discountId: BigNumberish, isActive: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setDiscountMaxMints"): TypedContractMethod<[ discountId: BigNumberish, maxMints: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setDiscountName"): TypedContractMethod<[ discountId: BigNumberish, name: string ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setDiscountRestricted"): TypedContractMethod<[ discountId: BigNumberish, isRestricted: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setRestrictedAccess"): TypedContractMethod<[ discountId: BigNumberish, passOwners: AddressLike[], restricted: boolean[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "totalDiscounts"): TypedContractMethod<[], [bigint], "view">; getEvent(key: "DiscountCreated"): TypedContractEvent; getEvent(key: "DiscountMinted"): TypedContractEvent; getEvent(key: "DiscountUpdated"): TypedContractEvent; getEvent(key: "RestrictedAccessUpdated"): TypedContractEvent; filters: { "DiscountCreated(uint256,uint256,string,uint256)": TypedContractEvent; DiscountCreated: TypedContractEvent; "DiscountMinted(uint256,uint256,uint256,address)": TypedContractEvent; DiscountMinted: TypedContractEvent; "DiscountUpdated(uint256,uint256)": TypedContractEvent; DiscountUpdated: TypedContractEvent; "RestrictedAccessUpdated(uint256,uint256,address,bool)": TypedContractEvent; RestrictedAccessUpdated: TypedContractEvent; }; }