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 type SchemaRecordStruct = { uid: BytesLike; resolver: AddressLike; revocable: boolean; schema: string; }; export type SchemaRecordStructOutput = [ uid: string, resolver: string, revocable: boolean, schema: string ] & { uid: string; resolver: string; revocable: boolean; schema: string; }; export interface SchemaRegistryInterface extends Interface { getFunction(nameOrSignature: "getSchema" | "register" | "version"): FunctionFragment; getEvent(nameOrSignatureOrTopic: "Registered"): EventFragment; encodeFunctionData(functionFragment: "getSchema", values: [BytesLike]): string; encodeFunctionData(functionFragment: "register", values: [string, AddressLike, boolean]): string; encodeFunctionData(functionFragment: "version", values?: undefined): string; decodeFunctionResult(functionFragment: "getSchema", data: BytesLike): Result; decodeFunctionResult(functionFragment: "register", data: BytesLike): Result; decodeFunctionResult(functionFragment: "version", data: BytesLike): Result; } export declare namespace RegisteredEvent { type InputTuple = [ uid: BytesLike, registerer: AddressLike, schema: SchemaRecordStruct ]; type OutputTuple = [ uid: string, registerer: string, schema: SchemaRecordStructOutput ]; interface OutputObject { uid: string; registerer: string; schema: SchemaRecordStructOutput; } type Event = TypedContractEvent; type Filter = TypedDeferredTopicFilter; type Log = TypedEventLog; type LogDescription = TypedLogDescription; } export interface SchemaRegistry extends BaseContract { connect(runner?: ContractRunner | null): SchemaRegistry; waitForDeployment(): Promise; interface: SchemaRegistryInterface; 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; getSchema: TypedContractMethod<[ uid: BytesLike ], [ SchemaRecordStructOutput ], "view">; register: TypedContractMethod<[ schema: string, resolver: AddressLike, revocable: boolean ], [ string ], "nonpayable">; version: TypedContractMethod<[], [string], "view">; getFunction(key: string | FunctionFragment): T; getFunction(nameOrSignature: "getSchema"): TypedContractMethod<[uid: BytesLike], [SchemaRecordStructOutput], "view">; getFunction(nameOrSignature: "register"): TypedContractMethod<[ schema: string, resolver: AddressLike, revocable: boolean ], [ string ], "nonpayable">; getFunction(nameOrSignature: "version"): TypedContractMethod<[], [string], "view">; getEvent(key: "Registered"): TypedContractEvent; filters: { "Registered(bytes32,address,tuple)": TypedContractEvent; Registered: TypedContractEvent; }; } //# sourceMappingURL=SchemaRegistry.d.ts.map