import protobuf from 'protobufjs'; export declare const HTTP_METHODS: readonly ["get", "post", "put", "delete", "patch"]; export declare const PROTO_LOADER_OPTIONS: { keepCase: true; longs: StringConstructor; enums: StringConstructor; defaults: true; oneofs: true; includeDirs: string[]; }; export interface HttpMapping { method: string; path: string; } export declare function extractHttpMapping(options: Record | undefined): HttpMapping | undefined; export interface GrpcMethodDefinition { path: string; requestType?: { type?: { name: string; }; }; responseType?: { type?: { name: string; }; }; requestStream?: boolean; responseStream?: boolean; options?: Record; } export interface ProtoMetadata { root: protobuf.Root; methods: MethodMetadata[]; methodDescriptions: Map; methodDeprecations: Map; fieldComments: Map; messageComments: Map; } export interface MethodMetadata { serviceName: string; methodName: string; fullPath: string; httpMethod?: string; httpPath?: string; description?: string; deprecated?: boolean; } export interface JsonSchemaRef { $ref: string; description?: string; } export interface JsonSchemaArray { type: 'array'; items: JsonSchemaProperty; description?: string; } export interface JsonSchemaPrimitive { type: 'string' | 'number' | 'integer' | 'boolean'; format?: string; enum?: string[]; description?: string; protoSource?: string; } export interface JsonSchemaObject { type: 'object'; properties: Record; required?: string[]; description?: string; protoSource?: string; } export interface JsonSchemaMap { type: 'object'; additionalProperties: JsonSchemaProperty; description?: string; } export type JsonSchemaProperty = JsonSchemaRef | JsonSchemaArray | JsonSchemaPrimitive | JsonSchemaObject | JsonSchemaMap; export interface JsonSchema extends JsonSchemaObject { definitions?: Record; } export interface RegisteredMethod { grpcMethod: string; requestSchema: JsonSchema; responseSchema: JsonSchema; requestTypeName?: string; responseTypeName?: string; httpMapping?: HttpMapping; description?: string; deprecated?: boolean; sessionType?: string; actionName?: string; requestStream?: boolean; responseStream?: boolean; } export interface ActionSchemaDto { name: string; grpcMethod: string; sessionType: string; requestSchemaJson: string; responseSchemaJson: string; requestTypeName?: string; responseTypeName?: string; httpMapping?: HttpMapping; description?: string; deprecated?: boolean; requestStream?: boolean; responseStream?: boolean; } export interface ServiceSchemaDto { serviceName: string; version: string; actions: ActionSchemaDto[]; definitionsJson?: string; }