import type { OpenApiResponseOptions } from "../contract/routeDeclaration.ts"; import type { RouteDeclaration } from "../contract/routeDeclaration.ts"; import type { RequestHeadersDeclaration, RequestBodySchema } from "../contract/request.ts"; import type { ResponseDeclaration, ResponseHeaders } from "../contract/response.ts"; import type { StandardSchemaV1 } from "../standard-schema/index.ts"; export declare const JSON_CONTENT_TYPE = "application/json"; export declare const NDJSON_CONTENT_TYPE = "application/x-ndjson"; export declare const FORM_URLENCODED_CONTENT_TYPE = "application/x-www-form-urlencoded"; export declare const MULTIPART_FORM_DATA_CONTENT_TYPE = "multipart/form-data"; export type OpenApiSchema = Record; export type OpenApiParameter = { name: string; in: "path" | "query" | "header" | "cookie"; required?: boolean; description?: string; schema?: OpenApiSchema; content?: Record; }; export type OpenApiRequestBody = { required?: boolean; description?: string; content: Record; }; export type OpenApiResponse = { description: string; headers?: Record; content?: Record; }; export type OpenApiExternalDocs = { url: string; description?: string; }; export type OpenApiOperation = { operationId?: string; summary?: string; description?: string; tags?: string[]; deprecated?: boolean; parameters?: OpenApiParameter[]; requestBody?: OpenApiRequestBody; responses: Record; security?: Array>; externalDocs?: OpenApiExternalDocs; [key: `x-${string}`]: unknown; }; export type SchemaConverter = (schema: StandardSchemaV1, mode: "input" | "output") => OpenApiSchema | undefined; export type ParameterTransformContext = { route: RouteDeclaration; routePath: readonly string[]; parameter: OpenApiParameter; }; export type OperationTransformContext = { route: RouteDeclaration; routePath: readonly string[]; operation: OpenApiOperation; }; type CreateOperationOptions = { schemaConverter?: SchemaConverter; transformParameter?: (context: ParameterTransformContext) => OpenApiParameter; transformOperation?: (context: OperationTransformContext) => OpenApiOperation; }; export declare const createParameters: (schema: StandardSchemaV1 | undefined, location: "path" | "query" | "header", options: CreateOperationOptions) => OpenApiParameter[]; export declare const createHeaderParameters: (headers: RequestHeadersDeclaration | undefined, options: CreateOperationOptions) => OpenApiParameter[]; export declare const createRequestBody: (schema: RequestBodySchema | undefined, converter: SchemaConverter | undefined, customContentType?: string | readonly string[]) => OpenApiRequestBody | undefined; export declare const createResponse: (description: string, responseDeclaration: ResponseDeclaration, converter: SchemaConverter | undefined, openApiResponse?: OpenApiResponseOptions) => OpenApiResponse; export declare const createResponseHeaders: (headers: ResponseHeaders | undefined, converter: SchemaConverter | undefined) => OpenApiResponse["headers"] | undefined; export declare const createOpenApiResponseHeaders: (headers: OpenApiResponseOptions["headers"] | undefined, converter: SchemaConverter | undefined) => OpenApiResponse["headers"] | undefined; export declare const createResponses: (route: RouteDeclaration, converter: SchemaConverter | undefined) => Record; export declare const createOperation: (route: RouteDeclaration, options: CreateOperationOptions, routePath?: readonly string[]) => OpenApiOperation; export {};