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 IContractRegistryInterface extends Interface { getFunction(nameOrSignature: "ORG_LOCK" | "PASS_LOCK" | "batchSetContracts" | "couponRegistry" | "discountRegistry" | "orgAdmin" | "organizationNFT" | "paymentEscrow" | "pricingCalculator" | "pricingRegistry" | "productPassNFT" | "productRegistry" | "productTransferOracle" | "purchaseManager" | "purchaseRegistry" | "subscriptionEscrow" | "subscriptionTransferOracle" | "usageRecorder"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "ContractUpdated"): EventFragment; encodeFunctionData(functionFragment: "ORG_LOCK", values?: undefined): string; encodeFunctionData(functionFragment: "PASS_LOCK", 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: "paymentEscrow", 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: "subscriptionEscrow", values?: undefined): string; encodeFunctionData(functionFragment: "subscriptionTransferOracle", values?: undefined): string; encodeFunctionData(functionFragment: "usageRecorder", values?: undefined): string; decodeFunctionResult(functionFragment: "ORG_LOCK", data: BytesLike): Result; decodeFunctionResult(functionFragment: "PASS_LOCK", 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: "paymentEscrow", 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: "subscriptionEscrow", data: BytesLike): Result; decodeFunctionResult(functionFragment: "subscriptionTransferOracle", 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 interface IContractRegistry extends BaseContract { connect(runner?: ContractRunner | null): IContractRegistry; waitForDeployment(): Promise; interface: IContractRegistryInterface; 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">; batchSetContracts: TypedContractMethod<[ _contracts: IContractRegistry.BatchSetupContractsStruct ], [ void ], "nonpayable">; couponRegistry: TypedContractMethod<[], [string], "view">; discountRegistry: TypedContractMethod<[], [string], "view">; orgAdmin: TypedContractMethod<[], [string], "view">; organizationNFT: TypedContractMethod<[], [string], "view">; paymentEscrow: 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">; subscriptionEscrow: TypedContractMethod<[], [string], "view">; subscriptionTransferOracle: TypedContractMethod<[], [string], "view">; 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: "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: "paymentEscrow"): 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: "subscriptionEscrow"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "subscriptionTransferOracle"): TypedContractMethod<[], [string], "view">; getFunction(nameOrSignature: "usageRecorder"): TypedContractMethod<[], [string], "view">; getEvent(key: "ContractUpdated"): TypedContractEvent; filters: { "ContractUpdated(string,address)": TypedContractEvent; ContractUpdated: TypedContractEvent; }; }