import type { Message } from "../types.js"; import type { DescEnum, DescEnumValue, DescExtension, DescField, DescFile, DescMessage, DescMethod, DescService } from "../descriptors.js"; import type { JsonValue } from "../json-value.js"; /** * Describes a protobuf source file. * * @private */ export type GenFile = DescFile; /** * Describes a message declaration in a protobuf source file. * * This type is identical to DescMessage, but carries additional type * information. * * @private */ export type GenMessage = Omit & { field: Record, DescField>; } & brandv1; /** * Describes an enumeration in a protobuf source file. * * This type is identical to DescEnum, but carries additional type * information. * * @private */ export type GenEnum = Omit & { value: Record; } & brandv1; /** * Describes an extension in a protobuf source file. * * This type is identical to DescExtension, but carries additional type * information. * * @private */ export type GenExtension = DescExtension & brandv1; /** * Describes a service declaration in a protobuf source file. * * This type is identical to DescService, but carries additional type * information. * * @private */ export type GenService = Omit & { method: { [K in keyof RuntimeShape]: RuntimeShape[K] & DescMethod; }; }; /** * @private */ export type GenServiceMethods = Record>; declare class brandv1 { protected v: "codegenv1"; protected a: A | boolean; protected b: B | boolean; } /** * Union of the property names of all fields, including oneof members. * For an anonymous message (no generated message shape), it's simply a string. */ type MessageFieldNames = Message extends T ? string : Exclude ? K : P]-?: true; }, number | symbol>; type Oneof = { case: K | undefined; value?: unknown; }; export {};