import { ZodOpenApiObject, ZodOpenApiPathsObject } from 'zod-openapi'; import { ZodSchema } from 'zod'; import { OpenApiMeta, type OpenAPIObject, OpenApiRouter, type SecuritySchemeObject } from '../types'; export interface GenerateOpenApiDocumentOptions> { title: string; description?: string; version: string; openApiVersion?: ZodOpenApiObject['openapi']; baseUrl: string; docsUrl?: string; tags?: string[]; securitySchemes?: Record; paths?: ZodOpenApiPathsObject; /** * Optional filter function to include/exclude procedures from the generated OpenAPI document. * * The function receives a context object with the procedure's metadata as `ctx.metadata`. * Return `true` to include the procedure, or `false` to exclude it from the OpenAPI output. * * @example * filter: ({ metadata }) => metadata.isPublic === true */ filter?: (ctx: { metadata: { openapi: NonNullable; } & TMeta; }) => boolean; /** * Optional object containing Zod schemas to be included in the OpenAPI document's components/schemas section. * * @example * defs: { * UserSchema: z.object({ id: z.string(), name: z.string() }), * ProductSchema: z.object({ id: z.string(), price: z.number() }) * } */ defs?: Record; } export declare const generateOpenApiDocument: >(appRouter: OpenApiRouter, opts: GenerateOpenApiDocumentOptions) => OpenAPIObject; //# sourceMappingURL=index.d.ts.map