import type { BaseContract, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers"; import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "../common"; export declare namespace IContractRegistry { type BatchSetupContractsStruct = { purchaseManager: AddressLike; orgAdmin: AddressLike; productPassNFT: AddressLike; organizationNFT: AddressLike; productRegistry: AddressLike; pricingRegistry: AddressLike; purchaseRegistry: AddressLike; couponRegistry: AddressLike; discountRegistry: AddressLike; pricingCalculator: AddressLike; productTransferOracle: AddressLike; subscriptionTransferOracle: AddressLike; subscriptionEscrow: AddressLike; paymentEscrow: AddressLike; usageRecorder: AddressLike; }; type BatchSetupContractsStructOutput = [ purchaseManager: string, orgAdmin: string, productPassNFT: string, organizationNFT: string, productRegistry: string, pricingRegistry: string, purchaseRegistry: string, couponRegistry: string, discountRegistry: string, pricingCalculator: string, productTransferOracle: string, subscriptionTransferOracle: string, subscriptionEscrow: string, paymentEscrow: string, usageRecorder: string ] & { purchaseManager: string; orgAdmin: string; productPassNFT: string; organizationNFT: string; productRegistry: string; pricingRegistry: string; purchaseRegistry: string; couponRegistry: string; discountRegistry: string; pricingCalculator: string; productTransferOracle: string; subscriptionTransferOracle: string; subscriptionEscrow: string; paymentEscrow: string; usageRecorder: string; }; } export interface ContractRegistryInterface extends Interface { getFunction(nameOrSignature: "ORG_LOCK" | "PASS_LOCK" | "acceptOwnership" | "batchSetContracts" | "couponRegistry" | "discountRegistry" | "orgAdmin" | "organizationNFT" | "owner" | "paymentEscrow" | "pendingOwner" | "pricingCalculator" | "pricingRegistry" | "productPassNFT" | "productRegistry" | "productTransferOracle" | "purchaseManager" | "purchaseRegistry" | "renounceOwnership" | "setCouponRegistry" | "setDiscountRegistry" | "setOrgAdmin" | "setOrganizationNFT" | "setPaymentEscrow" | "setPricingCalculator" | "setPricingRegistry" | "setProductPassNFT" | "setProductRegistry" | "setProductTransferOracle" | "setPurchaseManager" | "setPurchaseRegistry" | "setSubscriptionEscrow" | "setSubscriptionTransferOracle" | "setUsageRecorder" | "subscriptionEscrow" | "subscriptionTransferOracle" | "supportsInterface" | "transferOwnership" | "usageRecorder"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "ContractUpdated" | "Locked" | "OwnershipTransferStarted" | "OwnershipTransferred"): EventFragment; encodeFunctionData(functionFragment: "ORG_LOCK", values?: undefined): string; encodeFunctionData(functionFragment: "PASS_LOCK", values?: undefined): string; encodeFunctionData(functionFragment: "acceptOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "batchSetContracts", values: [IContractRegistry.BatchSetupContractsStruct]): string; encodeFunctionData(functionFragment: "couponRegistry", values?: undefined): string; encodeFunctionData(functionFragment: "discountRegistry", values?: undefined): string; encodeFunctionData(functionFragment: "orgAdmin", values?: undefined): string; encodeFunctionData(functionFragment: "organizationNFT", values?: undefined): string; encodeFunctionData(functionFragment: "owner", values?: undefined): string; encodeFunctionData(functionFragment: "paymentEscrow", values?: undefined): string; encodeFunctionData(functionFragment: "pendingOwner", values?: undefined): string; encodeFunctionData(functionFragment: "pricingCalculator", values?: undefined): string; encodeFunctionData(functionFragment: "pricingRegistry", values?: undefined): string; encodeFunctionData(functionFragment: "productPassNFT", values?: undefined): string; encodeFunctionData(functionFragment: "productRegistry", values?: undefined): string; encodeFunctionData(functionFragment: "productTransferOracle", values?: undefined): string; encodeFunctionData(functionFragment: "purchaseManager", values?: undefined): string; encodeFunctionData(functionFragment: "purchaseRegistry", values?: undefined): string; encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string; encodeFunctionData(functionFragment: "setCouponRegistry", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setDiscountRegistry", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setOrgAdmin", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setOrganizationNFT", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setPaymentEscrow", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setPricingCalculator", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setPricingRegistry", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setProductPassNFT", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setProductRegistry", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setProductTransferOracle", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setPurchaseManager", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setPurchaseRegistry", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setSubscriptionEscrow", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setSubscriptionTransferOracle", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setUsageRecorder", values: [AddressLike]): string; encodeFunctionData(functionFragment: "subscriptionEscrow", values?: undefined): string; encodeFunctionData(functionFragment: "subscriptionTransferOracle", values?: undefined): string; encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string; encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string; encodeFunctionData(functionFragment: "usageRecorder", values?: undefined): string; decodeFunctionResult(functionFragment: "ORG_LOCK", data: BytesLike): Result; decodeFunctionResult(functionFragment: "PASS_LOCK", data: BytesLike): Result; decodeFunctionResult(functionFragment: "acceptOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "batchSetContracts", data: BytesLike): Result; decodeFunctionResult(functionFragment: "couponRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "discountRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "orgAdmin", data: BytesLike): Result; decodeFunctionResult(functionFragment: "organizationNFT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "paymentEscrow", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pendingOwner", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pricingCalculator", data: BytesLike): Result; decodeFunctionResult(functionFragment: "pricingRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "productPassNFT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "productRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "productTransferOracle", data: BytesLike): Result; decodeFunctionResult(functionFragment: "purchaseManager", data: BytesLike): Result; decodeFunctionResult(functionFragment: "purchaseRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setCouponRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDiscountRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setOrgAdmin", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setOrganizationNFT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPaymentEscrow", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPricingCalculator", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPricingRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProductPassNFT", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProductRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setProductTransferOracle", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPurchaseManager", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setPurchaseRegistry", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setSubscriptionEscrow", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setSubscriptionTransferOracle", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setUsageRecorder", data: BytesLike): Result; decodeFunctionResult(functionFragment: "subscriptionEscrow", data: BytesLike): Result; decodeFunctionResult(functionFragment: "subscriptionTransferOracle", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result; decodeFunctionResult(functionFragment: "usageRecorder", data: BytesLike): Result; } export declare namespace ContractUpdatedEvent { type InputTuple = [contractName: string, newAddress: AddressLike]; type OutputTuple = [contractName: string, newAddress: string]; interface OutputObject { contractName: string; newAddress: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace LockedEvent { type InputTuple = [hash: BytesLike]; type OutputTuple = [hash: string]; interface OutputObject { hash: 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 interface ContractRegistry extends BaseContract { connect(runner?: ContractRunner | null): ContractRegistry; waitForDeployment(): Promise; interface: ContractRegistryInterface; 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; ORG_LOCK: TypedContractMethod<[], [string], "view">; PASS_LOCK: TypedContractMethod<[], [string], "view">; acceptOwnership: TypedContractMethod<[], [void], "nonpayable">; batchSetContracts: TypedContractMethod<[ _contracts: IContractRegistry.BatchSetupContractsStruct ], [ void ], "nonpayable">; couponRegistry: TypedContractMethod<[], [string], "view">; discountRegistry: TypedContractMethod<[], [string], "view">; orgAdmin: TypedContractMethod<[], [string], "view">; organizationNFT: TypedContractMethod<[], [string], "view">; owner: TypedContractMethod<[], [string], "view">; paymentEscrow: TypedContractMethod<[], [string], "view">; pendingOwner: TypedContractMethod<[], [string], "view">; pricingCalculator: TypedContractMethod<[], [string], "view">; pricingRegistry: TypedContractMethod<[], [string], "view">; productPassNFT: TypedContractMethod<[], [string], "view">; productRegistry: TypedContractMethod<[], [string], "view">; productTransferOracle: TypedContractMethod<[], [string], "view">; purchaseManager: TypedContractMethod<[], [string], "view">; purchaseRegistry: TypedContractMethod<[], [string], "view">; renounceOwnership: TypedContractMethod<[], [void], "nonpayable">; setCouponRegistry: TypedContractMethod<[ _couponRegistry: AddressLike ], [ void ], "nonpayable">; setDiscountRegistry: TypedContractMethod<[ _discountRegistry: AddressLike ], [ void ], "nonpayable">; setOrgAdmin: TypedContractMethod<[ _orgAdmin: AddressLike ], [ void ], "nonpayable">; setOrganizationNFT: TypedContractMethod<[ _organizationNFT: AddressLike ], [ void ], "nonpayable">; setPaymentEscrow: TypedContractMethod<[ _paymentEscrow: AddressLike ], [ void ], "nonpayable">; setPricingCalculator: TypedContractMethod<[ _pricingCalculator: AddressLike ], [ void ], "nonpayable">; setPricingRegistry: TypedContractMethod<[ _pricingRegistry: AddressLike ], [ void ], "nonpayable">; setProductPassNFT: TypedContractMethod<[ _productPassNFT: AddressLike ], [ void ], "nonpayable">; setProductRegistry: TypedContractMethod<[ _productRegistry: AddressLike ], [ void ], "nonpayable">; setProductTransferOracle: TypedContractMethod<[ _productTransferOracle: AddressLike ], [ void ], "nonpayable">; setPurchaseManager: TypedContractMethod<[ _purchaseManager: AddressLike ], [ void ], "nonpayable">; setPurchaseRegistry: TypedContractMethod<[ _purchaseRegistry: AddressLike ], [ void ], "nonpayable">; setSubscriptionEscrow: TypedContractMethod<[ _subscriptionEscrow: AddressLike ], [ void ], "nonpayable">; setSubscriptionTransferOracle: TypedContractMethod<[ _subscriptionTransferOracle: AddressLike ], [ void ], "nonpayable">; setUsageRecorder: TypedContractMethod<[ _usageRecorder: AddressLike ], [ void ], "nonpayable">; subscriptionEscrow: TypedContractMethod<[], [string], "view">; subscriptionTransferOracle: TypedContractMethod<[], [string], "view">; supportsInterface: TypedContractMethod<[ interfaceId: BytesLike ], [ boolean ], "view">; transferOwnership: TypedContractMethod<[ newOwner: AddressLike ], [ void ], "nonpayable">; usageRecorder: TypedContractMethod<[], [string], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "ORG_LOCK"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "PASS_LOCK"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "acceptOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "batchSetContracts"): TypedContractMethod<[ _contracts: IContractRegistry.BatchSetupContractsStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "couponRegistry"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "discountRegistry"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "orgAdmin"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "organizationNFT"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "paymentEscrow"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "pendingOwner"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "pricingCalculator"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "pricingRegistry"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "productPassNFT"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "productRegistry"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "productTransferOracle"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "purchaseManager"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "purchaseRegistry"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "nonpayable">; getFunction(nameOrSignature: "setCouponRegistry"): TypedContractMethod<[_couponRegistry: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setDiscountRegistry"): TypedContractMethod<[ _discountRegistry: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setOrgAdmin"): TypedContractMethod<[_orgAdmin: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setOrganizationNFT"): TypedContractMethod<[_organizationNFT: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setPaymentEscrow"): TypedContractMethod<[_paymentEscrow: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setPricingCalculator"): TypedContractMethod<[ _pricingCalculator: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setPricingRegistry"): TypedContractMethod<[_pricingRegistry: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setProductPassNFT"): TypedContractMethod<[_productPassNFT: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setProductRegistry"): TypedContractMethod<[_productRegistry: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setProductTransferOracle"): TypedContractMethod<[ _productTransferOracle: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setPurchaseManager"): TypedContractMethod<[_purchaseManager: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "setPurchaseRegistry"): TypedContractMethod<[ _purchaseRegistry: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setSubscriptionEscrow"): TypedContractMethod<[ _subscriptionEscrow: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setSubscriptionTransferOracle"): TypedContractMethod<[ _subscriptionTransferOracle: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setUsageRecorder"): TypedContractMethod<[_usageRecorder: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "subscriptionEscrow"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "subscriptionTransferOracle"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">; getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">; getFunction(nameOrSignature: "usageRecorder"): TypedContractMethod<[], [string], "view">; getEvent(key: "ContractUpdated"): TypedContractEvent; getEvent(key: "Locked"): TypedContractEvent; getEvent(key: "OwnershipTransferStarted"): TypedContractEvent; getEvent(key: "OwnershipTransferred"): TypedContractEvent; filters: { "ContractUpdated(string,address)": TypedContractEvent; ContractUpdated: TypedContractEvent; "Locked(bytes32)": TypedContractEvent; Locked: TypedContractEvent; "OwnershipTransferStarted(address,address)": TypedContractEvent; OwnershipTransferStarted: TypedContractEvent; "OwnershipTransferred(address,address)": TypedContractEvent; OwnershipTransferred: TypedContractEvent; }; }