import { OpenAPIObject } from 'openapi3-ts/oas31'; import { ServiceDefinition } from '../../ServiceDefinition.ts'; import { PrismApp } from '../../app/PrismApp.ts'; import express from 'express'; export { validateServicesForOpenapi as validateEndpointForOpenapi } from './validateServicesForOpenapi.ts'; export interface OpenAPIConfig { enable: boolean; enableSwagger?: boolean; } export type ParseExpressPathForOpenAPIResult = { openApiPath: string; pathParams: string[]; }; export interface OpenAPIDocumentInfo { version: string; title: string; description: string; } /** * Transforms path parameters in an Express-style URL path (e.g. :pathParameter) into their OpenAPI equivalents (e.g. {pathParameter}) * Returns the transformed OpenAPI-style URL path along with any path parameters found. * * @param {string} expressApiPath - An Express-style URL path * @returns {ParseExpressPathForOpenAPIResult} - the transformed OpenAPI-style URL path with any path parameters found */ export declare function parseExpressPathForOpenAPI(expressApiPath: string): ParseExpressPathForOpenAPIResult; /** * Generates the Open API Schema for all services. * * @param {ServiceDefinition[]} services - Array of service definitions to generate OpenAPI schema for * @param {OpenAPIDocumentInfo} documentInfo - Metadata for the OpenAPI document * @returns {OpenAPIObject} - the Open API schema for all service definitions. */ export declare function generateOpenAPISchema(services: ServiceDefinition[], documentInfo: OpenAPIDocumentInfo): OpenAPIObject; export declare function setupSwaggerUI(app: express.Application, openApiJsonPath?: string): void; export declare function mountOpenAPIEndpoints(config: OpenAPIConfig, expressApp: express.Application, prismApp: PrismApp): void; //# sourceMappingURL=OpenAPI.d.ts.map