/**
 * 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