/** * OpenAPI Specification Generator * * Generates OpenAPI 3.1 specification from registered controllers and their metadata */ import type { TJsonSchema } from '../decorators/decorators.types.js'; import type { IOpenApiSpec, IOpenApiGeneratorOptions } from './openapi.types.js'; /** * OpenAPI Specification Generator */ export declare class OpenApiGenerator { private options; private schemas; constructor(options: IOpenApiGeneratorOptions); /** * Register a reusable schema in components/schemas */ addSchema(name: string, schema: TJsonSchema): this; /** * Generate the complete OpenAPI specification */ generate(): IOpenApiSpec; /** * Generate and return as JSON string */ toJSON(pretty?: boolean): string; /** * Process a single controller and add its routes to the spec */ private processController; /** * Build an OpenAPI operation from route metadata */ private buildOperation; /** * Convert Express-style path to OpenAPI path format * :id -> {id} */ private convertPathToOpenApi; /** * Extract parameter names from path pattern */ private extractPathParams; /** * Generate a unique operation ID from route metadata */ private generateOperationId; }