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 IPricingRegistry { type CreateFlatRateSubscriptionParamsStruct = { organizationId: BigNumberish; flatPrice: BigNumberish; token: AddressLike; chargeFrequency: BigNumberish; isRestricted: boolean; }; type CreateFlatRateSubscriptionParamsStructOutput = [ organizationId: bigint, flatPrice: bigint, token: string, chargeFrequency: bigint, isRestricted: boolean ] & { organizationId: bigint; flatPrice: bigint; token: string; chargeFrequency: bigint; isRestricted: boolean; }; type CreateOneTimeParamsStruct = { organizationId: BigNumberish; flatPrice: BigNumberish; token: AddressLike; isRestricted: boolean; }; type CreateOneTimeParamsStructOutput = [ organizationId: bigint, flatPrice: bigint, token: string, isRestricted: boolean ] & { organizationId: bigint; flatPrice: bigint; token: string; isRestricted: boolean; }; type CreateTieredSubscriptionParamsStruct = { organizationId: BigNumberish; token: AddressLike; chargeFrequency: BigNumberish; tiers: PricingUtils.PricingTierStruct[]; isVolume: boolean; isRestricted: boolean; }; type CreateTieredSubscriptionParamsStructOutput = [ organizationId: bigint, token: string, chargeFrequency: bigint, tiers: PricingUtils.PricingTierStructOutput[], isVolume: boolean, isRestricted: boolean ] & { organizationId: bigint; token: string; chargeFrequency: bigint; tiers: PricingUtils.PricingTierStructOutput[]; isVolume: boolean; isRestricted: boolean; }; type CreateUsageBasedSubscriptionParamsStruct = { organizationId: BigNumberish; token: AddressLike; chargeFrequency: BigNumberish; tiers: PricingUtils.PricingTierStruct[]; usageMeterId: BigNumberish; isVolume: boolean; isRestricted: boolean; }; type CreateUsageBasedSubscriptionParamsStructOutput = [ organizationId: bigint, token: string, chargeFrequency: bigint, tiers: PricingUtils.PricingTierStructOutput[], usageMeterId: bigint, isVolume: boolean, isRestricted: boolean ] & { organizationId: bigint; token: string; chargeFrequency: bigint; tiers: PricingUtils.PricingTierStructOutput[]; usageMeterId: bigint; isVolume: boolean; isRestricted: 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 IPricingRegistryInterface extends Interface { getFunction(nameOrSignature: "createFlatRateSubscriptionPricing" | "createOneTimePricing" | "createTieredSubscriptionPricing" | "createUsageBasedSubscriptionPricing" | "getChargeFrequencyCycleDuration" | "getCycleDuration" | "getCycleDurationBatch" | "getOrgPricing" | "getOrgPricingIds" | "getPricing" | "getPricingBatch" | "pricingSupply" | "restrictedAccess" | "setPricingActive" | "setPricingFlatPrice" | "setPricingRestricted" | "setPricingTiers" | "setPricingToken" | "setPricingUsageMeterId" | "setRestrictedAccess" | "validateCheckout" | "validateCheckoutBatch" | "validateOrgPricing" | "validateTiers"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "PricingCreated" | "PricingStatusChanged" | "PricingUpdated" | "RestrictedAccessGranted"): EventFragment; encodeFunctionData(functionFragment: "createFlatRateSubscriptionPricing", values: [IPricingRegistry.CreateFlatRateSubscriptionParamsStruct]): string; encodeFunctionData(functionFragment: "createOneTimePricing", values: [IPricingRegistry.CreateOneTimeParamsStruct]): string; encodeFunctionData(functionFragment: "createTieredSubscriptionPricing", values: [IPricingRegistry.CreateTieredSubscriptionParamsStruct]): string; encodeFunctionData(functionFragment: "createUsageBasedSubscriptionPricing", values: [IPricingRegistry.CreateUsageBasedSubscriptionParamsStruct]): string; encodeFunctionData(functionFragment: "getChargeFrequencyCycleDuration", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getCycleDuration", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getCycleDurationBatch", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "getOrgPricing", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getOrgPricingIds", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getPricing", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getPricingBatch", values: [BigNumberish[]]): string; encodeFunctionData(functionFragment: "pricingSupply", values?: undefined): string; encodeFunctionData(functionFragment: "restrictedAccess", values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "setPricingActive", values: [BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "setPricingFlatPrice", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "setPricingRestricted", values: [BigNumberish, boolean]): string; encodeFunctionData(functionFragment: "setPricingTiers", values: [BigNumberish, PricingUtils.PricingTierStruct[]]): string; encodeFunctionData(functionFragment: "setPricingToken", values: [BigNumberish, AddressLike]): string; encodeFunctionData(functionFragment: "setPricingUsageMeterId", values: [BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "setRestrictedAccess", values: [BigNumberish, AddressLike[], boolean[]]): string; encodeFunctionData(functionFragment: "validateCheckout", values: [BigNumberish, AddressLike, BigNumberish, BigNumberish]): string; encodeFunctionData(functionFragment: "validateCheckoutBatch", values: [BigNumberish, AddressLike, BigNumberish[], BigNumberish[]]): string; encodeFunctionData(functionFragment: "validateOrgPricing", values: [BigNumberish, BigNumberish[]]): string; encodeFunctionData(functionFragment: "validateTiers", values: [PricingUtils.PricingTierStruct[], BigNumberish]): string; decodeFunctionResult(functionFragment: "createFlatRateSubscriptionPricing", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createOneTimePricing", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createTieredSubscriptionPricing", data: BytesLike): Result; decodeFunctionResult(functionFragment: "createUsageBasedSubscriptionPricing", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getChargeFrequencyCycleDuration", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCycleDuration", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getCycleDurationBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOrgPricing", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getOrgPricingIds", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPricing", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getPricingBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pricingSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "restrictedAccess", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPricingActive", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPricingFlatPrice", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPricingRestricted", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPricingTiers", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPricingToken", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPricingUsageMeterId", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setRestrictedAccess", data: BytesLike): Result; decodeFunctionResult(functionFragment: "validateCheckout", data: BytesLike): Result; decodeFunctionResult(functionFragment: "validateCheckoutBatch", data: BytesLike): Result; decodeFunctionResult(functionFragment: "validateOrgPricing", data: BytesLike): Result; decodeFunctionResult(functionFragment: "validateTiers", data: BytesLike): Result; } export declare namespace PricingCreatedEvent { type InputTuple = [ organizationId: BigNumberish, pricingId: BigNumberish ]; type OutputTuple = [organizationId: bigint, pricingId: bigint]; interface OutputObject { organizationId: bigint; pricingId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PricingStatusChangedEvent { type InputTuple = [ organizationId: BigNumberish, pricingId: BigNumberish, isActive: boolean ]; type OutputTuple = [ organizationId: bigint, pricingId: bigint, isActive: boolean ]; interface OutputObject { organizationId: bigint; pricingId: bigint; isActive: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace PricingUpdatedEvent { type InputTuple = [ organizationId: BigNumberish, pricingId: BigNumberish ]; type OutputTuple = [organizationId: bigint, pricingId: bigint]; interface OutputObject { organizationId: bigint; pricingId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace RestrictedAccessGrantedEvent { type InputTuple = [ organizationId: BigNumberish, pricingId: BigNumberish, productPassOwner: AddressLike, isRestricted: boolean ]; type OutputTuple = [ organizationId: bigint, pricingId: bigint, productPassOwner: string, isRestricted: boolean ]; interface OutputObject { organizationId: bigint; pricingId: bigint; productPassOwner: string; isRestricted: boolean; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IPricingRegistry extends BaseContract { connect(runner?: ContractRunner | null): IPricingRegistry; waitForDeployment(): Promise; interface: IPricingRegistryInterface; 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; createFlatRateSubscriptionPricing: TypedContractMethod<[ params: IPricingRegistry.CreateFlatRateSubscriptionParamsStruct ], [ void ], "nonpayable">; createOneTimePricing: TypedContractMethod<[ params: IPricingRegistry.CreateOneTimeParamsStruct ], [ void ], "nonpayable">; createTieredSubscriptionPricing: TypedContractMethod<[ params: IPricingRegistry.CreateTieredSubscriptionParamsStruct ], [ void ], "nonpayable">; createUsageBasedSubscriptionPricing: TypedContractMethod<[ params: IPricingRegistry.CreateUsageBasedSubscriptionParamsStruct ], [ void ], "nonpayable">; getChargeFrequencyCycleDuration: TypedContractMethod<[ chargeFrequency: BigNumberish ], [ bigint ], "view">; getCycleDuration: TypedContractMethod<[ pricingId: BigNumberish ], [ bigint ], "view">; getCycleDurationBatch: TypedContractMethod<[ _pricingIds: BigNumberish[] ], [ bigint[] ], "view">; getOrgPricing: TypedContractMethod<[ organizationId: BigNumberish ], [ [bigint[], PricingUtils.PricingStructOutput[]] ], "view">; getOrgPricingIds: TypedContractMethod<[ organizationId: BigNumberish ], [ bigint[] ], "view">; getPricing: TypedContractMethod<[ pricingId: BigNumberish ], [ PricingUtils.PricingStructOutput ], "view">; getPricingBatch: TypedContractMethod<[ _pricingIds: BigNumberish[] ], [ PricingUtils.PricingStructOutput[] ], "view">; pricingSupply: TypedContractMethod<[], [bigint], "view">; restrictedAccess: TypedContractMethod<[ pricingId: BigNumberish, productPassOwner: AddressLike ], [ boolean ], "view">; setPricingActive: TypedContractMethod<[ pricingId: BigNumberish, isActive: boolean ], [ void ], "nonpayable">; setPricingFlatPrice: TypedContractMethod<[ pricingId: BigNumberish, flatPrice: BigNumberish ], [ void ], "nonpayable">; setPricingRestricted: TypedContractMethod<[ pricingId: BigNumberish, isRestricted: boolean ], [ void ], "nonpayable">; setPricingTiers: TypedContractMethod<[ pricingId: BigNumberish, tiers: PricingUtils.PricingTierStruct[] ], [ void ], "nonpayable">; setPricingToken: TypedContractMethod<[ pricingId: BigNumberish, token: AddressLike ], [ void ], "nonpayable">; setPricingUsageMeterId: TypedContractMethod<[ pricingId: BigNumberish, usageMeterId: BigNumberish ], [ void ], "nonpayable">; setRestrictedAccess: TypedContractMethod<[ pricingId: BigNumberish, productPassOwners: AddressLike[], isRestricted: boolean[] ], [ void ], "nonpayable">; validateCheckout: TypedContractMethod<[ _organizationId: BigNumberish, _productPassOwner: AddressLike, _pricingId: BigNumberish, _quantity: BigNumberish ], [ bigint ], "view">; validateCheckoutBatch: TypedContractMethod<[ _organizationId: BigNumberish, _productPassOwner: AddressLike, _pricingIds: BigNumberish[], _quantities: BigNumberish[] ], [ [string, bigint[]] & { token: string; cycleDurations: bigint[]; } ], "view">; validateOrgPricing: TypedContractMethod<[ _organizationId: BigNumberish, _pricingIds: BigNumberish[] ], [ void ], "view">; validateTiers: TypedContractMethod<[ tiers: PricingUtils.PricingTierStruct[], chargeStyle: BigNumberish ], [ void ], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "createFlatRateSubscriptionPricing"): TypedContractMethod<[ params: IPricingRegistry.CreateFlatRateSubscriptionParamsStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "createOneTimePricing"): TypedContractMethod<[ params: IPricingRegistry.CreateOneTimeParamsStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "createTieredSubscriptionPricing"): TypedContractMethod<[ params: IPricingRegistry.CreateTieredSubscriptionParamsStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "createUsageBasedSubscriptionPricing"): TypedContractMethod<[ params: IPricingRegistry.CreateUsageBasedSubscriptionParamsStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "getChargeFrequencyCycleDuration"): TypedContractMethod<[chargeFrequency: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "getCycleDuration"): TypedContractMethod<[pricingId: BigNumberish], [bigint], "view">; getFunction(nameOrSignature: "getCycleDurationBatch"): TypedContractMethod<[_pricingIds: BigNumberish[]], [bigint[]], "view">; getFunction(nameOrSignature: "getOrgPricing"): TypedContractMethod<[ organizationId: BigNumberish ], [ [bigint[], PricingUtils.PricingStructOutput[]] ], "view">; getFunction(nameOrSignature: "getOrgPricingIds"): TypedContractMethod<[organizationId: BigNumberish], [bigint[]], "view">; getFunction(nameOrSignature: "getPricing"): TypedContractMethod<[ pricingId: BigNumberish ], [ PricingUtils.PricingStructOutput ], "view">; getFunction(nameOrSignature: "getPricingBatch"): TypedContractMethod<[ _pricingIds: BigNumberish[] ], [ PricingUtils.PricingStructOutput[] ], "view">; getFunction(nameOrSignature: "pricingSupply"): TypedContractMethod<[], [bigint], "view">; getFunction(nameOrSignature: "restrictedAccess"): TypedContractMethod<[ pricingId: BigNumberish, productPassOwner: AddressLike ], [ boolean ], "view">; getFunction(nameOrSignature: "setPricingActive"): TypedContractMethod<[ pricingId: BigNumberish, isActive: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setPricingFlatPrice"): TypedContractMethod<[ pricingId: BigNumberish, flatPrice: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setPricingRestricted"): TypedContractMethod<[ pricingId: BigNumberish, isRestricted: boolean ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setPricingTiers"): TypedContractMethod<[ pricingId: BigNumberish, tiers: PricingUtils.PricingTierStruct[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setPricingToken"): TypedContractMethod<[ pricingId: BigNumberish, token: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setPricingUsageMeterId"): TypedContractMethod<[ pricingId: BigNumberish, usageMeterId: BigNumberish ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setRestrictedAccess"): TypedContractMethod<[ pricingId: BigNumberish, productPassOwners: AddressLike[], isRestricted: boolean[] ], [ void ], "nonpayable">; getFunction(nameOrSignature: "validateCheckout"): TypedContractMethod<[ _organizationId: BigNumberish, _productPassOwner: AddressLike, _pricingId: BigNumberish, _quantity: BigNumberish ], [ bigint ], "view">; getFunction(nameOrSignature: "validateCheckoutBatch"): TypedContractMethod<[ _organizationId: BigNumberish, _productPassOwner: AddressLike, _pricingIds: BigNumberish[], _quantities: BigNumberish[] ], [ [string, bigint[]] & { token: string; cycleDurations: bigint[]; } ], "view">; getFunction(nameOrSignature: "validateOrgPricing"): TypedContractMethod<[ _organizationId: BigNumberish, _pricingIds: BigNumberish[] ], [ void ], "view">; getFunction(nameOrSignature: "validateTiers"): TypedContractMethod<[ tiers: PricingUtils.PricingTierStruct[], chargeStyle: BigNumberish ], [ void ], "view">; getEvent(key: "PricingCreated"): TypedContractEvent; getEvent(key: "PricingStatusChanged"): TypedContractEvent; getEvent(key: "PricingUpdated"): TypedContractEvent; getEvent(key: "RestrictedAccessGranted"): TypedContractEvent; filters: { "PricingCreated(uint256,uint256)": TypedContractEvent; PricingCreated: TypedContractEvent; "PricingStatusChanged(uint256,uint256,bool)": TypedContractEvent; PricingStatusChanged: TypedContractEvent; "PricingUpdated(uint256,uint256)": TypedContractEvent; PricingUpdated: TypedContractEvent; "RestrictedAccessGranted(uint256,uint256,address,bool)": TypedContractEvent; RestrictedAccessGranted: TypedContractEvent; }; }