import type { Diagnostic } from "../../core/domain/facts/diagnostic.js"; import type { DetectionFact } from "../../core/domain/facts/fact.js"; import type { AnalysisUnit } from "../../core/ports/analysis-unit.port.js"; import type { OpenApiConfig } from "../../core/ports/config.port.js"; import type { IOpenApiReader } from "../../core/ports/openapi.port.js"; import type { ISourceParser } from "../../core/ports/parser.port.js"; import type { DetectConfig } from "../../core/ports/config.port.js"; export type FactSet = { readonly facts: readonly DetectionFact[]; readonly diagnostics: readonly Diagnostic[]; readonly coverage: Readonly>; }; export type DetectRequest = { readonly unit: AnalysisUnit; readonly openapi: OpenApiConfig; readonly detect: DetectConfig; }; /** * Pure over the analysis unit: no filesystem, no clock, no environment. The * composition root materializes the unit and this use case never widens it. */ export declare class DetectFactsUseCase { private readonly reader; private readonly parser; constructor(reader: IOpenApiReader, parser: ISourceParser); execute(request: DetectRequest): FactSet; }