import { EntityDescriptor, RelationshipDef } from "../../common/interfaces/entity.schema.interface"; import { EntitySchemas } from "../factories/entity-schema.factory"; import { RequestSchemas } from "../factories/request-schema.factory"; import { JsonApiSchemaObject } from "../schemas/jsonapi-base.schemas"; /** * Registered entity with its generated schemas. */ interface RegisteredEntity { descriptor: EntityDescriptor; entitySchemas: EntitySchemas; requestSchemas: RequestSchemas; } /** * Service that manages OpenAPI schema generation from EntityDescriptors. * Provides centralized schema registry for Swagger documentation. */ export declare class OpenApiService { private readonly logger; private readonly registeredEntities; private schemasCache; /** * Registers an EntityDescriptor and generates its OpenAPI schemas. * Call this for each entity you want documented. * * @example * openApiService.registerEntity(PhotographDescriptor); */ registerEntity>(descriptor: EntityDescriptor): void; /** * Registers multiple EntityDescriptors at once. * * @example * openApiService.registerEntities([ * PhotographDescriptor, * RollDescriptor, * CollectionDescriptor, * ]); */ registerEntities(descriptors: EntityDescriptor[]): void; /** * Gets all registered schemas for Swagger document builder. * Includes base JSON:API schemas, error schemas, and all entity schemas. * * @returns Record of schema name to SchemaObject */ getAllSchemas(): Record; /** * Gets schemas for a specific entity type. */ getEntitySchemas(type: string): RegisteredEntity | undefined; /** * Gets all registered entity types. */ getRegisteredTypes(): string[]; /** * Checks if an entity type is registered. */ isRegistered(type: string): boolean; /** * Gets the count of registered entities. */ getRegisteredCount(): number; } export {}; //# sourceMappingURL=openapi.service.d.ts.map