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 MetadataUtils { type MetadataStruct = { name: string; description: string; externalUrl: string; image: string; backgroundColor: string; animationUrl: string; }; type MetadataStructOutput = [ name: string, description: string, externalUrl: string, image: string, backgroundColor: string, animationUrl: string ] & { name: string; description: string; externalUrl: string; image: string; backgroundColor: string; animationUrl: string; }; } export interface IMetadataProviderInterface extends Interface { getFunction(nameOrSignature: "getCustomMetadata" | "getDefaultMetadata" | "setAttributeProvider" | "setCustomMetadata" | "setCustomMetadataField" | "setDefaultMetadata" | "setDefaultMetadataField"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "AttributeProviderUpdated" | "CustomMetadataUpdated" | "DefaultMetadataUpdated"): EventFragment; encodeFunctionData(functionFragment: "getCustomMetadata", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "getDefaultMetadata", values?: undefined): string; encodeFunctionData(functionFragment: "setAttributeProvider", values: [AddressLike]): string; encodeFunctionData(functionFragment: "setCustomMetadata", values: [BigNumberish, MetadataUtils.MetadataStruct]): string; encodeFunctionData(functionFragment: "setCustomMetadataField", values: [BigNumberish, BigNumberish, string]): string; encodeFunctionData(functionFragment: "setDefaultMetadata", values: [MetadataUtils.MetadataStruct]): string; encodeFunctionData(functionFragment: "setDefaultMetadataField", values: [BigNumberish, string]): string; decodeFunctionResult(functionFragment: "getCustomMetadata", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getDefaultMetadata", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setAttributeProvider", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setCustomMetadata", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setCustomMetadataField", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDefaultMetadata", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setDefaultMetadataField", data: BytesLike): Result; } export declare namespace AttributeProviderUpdatedEvent { type InputTuple = [attributeProvider: AddressLike]; type OutputTuple = [attributeProvider: string]; interface OutputObject { attributeProvider: string; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace CustomMetadataUpdatedEvent { type InputTuple = [organizationId: BigNumberish]; type OutputTuple = [organizationId: bigint]; interface OutputObject { organizationId: bigint; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export declare namespace DefaultMetadataUpdatedEvent { type InputTuple = []; type OutputTuple = []; interface OutputObject { } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface IMetadataProvider extends BaseContract { connect(runner?: ContractRunner | null): IMetadataProvider; waitForDeployment(): Promise; interface: IMetadataProviderInterface; 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; getCustomMetadata: TypedContractMethod<[ organizationId: BigNumberish ], [ MetadataUtils.MetadataStructOutput ], "view">; getDefaultMetadata: TypedContractMethod<[ ], [ MetadataUtils.MetadataStructOutput ], "view">; setAttributeProvider: TypedContractMethod<[ attributeProvider: AddressLike ], [ void ], "nonpayable">; setCustomMetadata: TypedContractMethod<[ organizationId: BigNumberish, metadata: MetadataUtils.MetadataStruct ], [ void ], "nonpayable">; setCustomMetadataField: TypedContractMethod<[ organizationId: BigNumberish, field: BigNumberish, value: string ], [ void ], "nonpayable">; setDefaultMetadata: TypedContractMethod<[ metadata: MetadataUtils.MetadataStruct ], [ void ], "nonpayable">; setDefaultMetadataField: TypedContractMethod<[ field: BigNumberish, value: string ], [ void ], "nonpayable">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "getCustomMetadata"): TypedContractMethod<[ organizationId: BigNumberish ], [ MetadataUtils.MetadataStructOutput ], "view">; getFunction(nameOrSignature: "getDefaultMetadata"): TypedContractMethod<[], [MetadataUtils.MetadataStructOutput], "view">; getFunction(nameOrSignature: "setAttributeProvider"): TypedContractMethod<[ attributeProvider: AddressLike ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setCustomMetadata"): TypedContractMethod<[ organizationId: BigNumberish, metadata: MetadataUtils.MetadataStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setCustomMetadataField"): TypedContractMethod<[ organizationId: BigNumberish, field: BigNumberish, value: string ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setDefaultMetadata"): TypedContractMethod<[ metadata: MetadataUtils.MetadataStruct ], [ void ], "nonpayable">; getFunction(nameOrSignature: "setDefaultMetadataField"): TypedContractMethod<[ field: BigNumberish, value: string ], [ void ], "nonpayable">; getEvent(key: "AttributeProviderUpdated"): TypedContractEvent; getEvent(key: "CustomMetadataUpdated"): TypedContractEvent; getEvent(key: "DefaultMetadataUpdated"): TypedContractEvent; filters: { "AttributeProviderUpdated(address)": TypedContractEvent; AttributeProviderUpdated: TypedContractEvent; "CustomMetadataUpdated(uint256)": TypedContractEvent; CustomMetadataUpdated: TypedContractEvent; "DefaultMetadataUpdated()": TypedContractEvent; DefaultMetadataUpdated: TypedContractEvent; }; }