import type { EnumType } from "./enum.js"; import type { Message, MessageType } from "./message.js"; import type { ServiceType } from "./service-type.js"; /** * IMessageTypeRegistry provides look-up for message types. * * You can conveniently create a registry using the createRegistry() * function: * * ```ts * import { createTypeRegistry, IMessageTypeRegistry } from "@aptre/protobuf-es-lite"; * import { MyMessage, MyOtherMessage } from "./gen/my_message.pb.js"; * * const reg: IMessageTypeRegistry = createRegistry( * MyMessage, * MyOtherMessage, * ); * ``` */ export interface IMessageTypeRegistry { /** * Find a message type by its protobuf type name. */ findMessage>(typeName: string): MessageType | undefined; } /** * IEnumTypeRegistry provides look-up for enum types. */ export interface IEnumTypeRegistry { /** * Find an enum type by its protobuf type name. */ findEnum(typeName: string): EnumType | undefined; } /** * IServiceTypeRegistry provides look-up for service types. */ export interface IServiceTypeRegistry { /** * Find a service type by its protobuf type name. */ findService(typeName: string): ServiceType | undefined; }