/** * OpenAPI Documentation Middleware * Provides automatic API documentation generation */ import { Express } from "express"; export interface OpenAPIConfig { title: string; version: string; description?: string; servers?: Array<{ url: string; description?: string; }>; contact?: { name?: string; email?: string; url?: string; }; license?: { name: string; url?: string; }; tags?: Array<{ name: string; description?: string; }>; } /** * Generate OpenAPI specification * @param config OpenAPI configuration * @param apis Array of file patterns for API routes */ export declare function generateOpenAPISpec(config: OpenAPIConfig, apis: string[]): object; /** * Setup OpenAPI documentation UI * @param app Express application * @param config OpenAPI configuration * @param apis Array of file patterns for API routes * @param path Path to serve documentation (default: /api-docs) */ export declare function setupOpenAPIDocumentation(app: Express, config: OpenAPIConfig, apis: string[], path?: string): void; /** * Example JSDoc annotation for OpenAPI * * @swagger * /api/resource: * get: * summary: Get all resources * tags: [Resources] * responses: * 200: * description: Successful response * content: * application/json: * schema: * $ref: '#/components/schemas/ApiResponse' * 500: * $ref: '#/components/responses/InternalError' */ /** * OpenAPI operation decorator (for future TypeScript decorator support) */ export declare function ApiOperation(operation: any): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; //# sourceMappingURL=openapi.d.ts.map