import type { ComponentInfo } from '@urbicon-ui/shared-types'; import type { ComponentManifest, ProcessingConfig, TypeScriptConfig } from '../../types'; import { type ErrorHandler } from '..'; /** * Coordinates all extraction operations for components * Reduces complexity in PipelineOrchestrator and enables better parallelization */ export declare class ExtractionCoordinator { private errorHandler; private extractorFactory; private config; constructor(config: ProcessingConfig, errorHandler: ErrorHandler, inputTypeScript?: TypeScriptConfig); /** * Merge + validate the TypeScript extraction config — the single path for * both the constructor and `updateConfig`, so a later update cannot * diverge from construction. * * The tsconfig path is authored on `input.typescript` (TypeScriptConfig); * merge it into the extraction config the extractors actually receive. * Historically this field was never handed through, so the extractors * always ran on an empty ts.Program (single-file mode). * * Fail loud *before* extraction starts: a configured-but-broken tsconfig * must abort the run, not degrade into per-component warnings with * cross-file types silently missing from the artifacts. * * The same reasoning covers the package's public export surface, and for * the same mechanical reason: everything below this point is constructed * inside the per-extractor `try/catch` further down this file, which * converts any throw into `{ success: false, data: [] }` and drops the * error. A package whose typed `exports` targets no longer map onto * `src/lib/…` therefore produced a green run over 0 props / 0 variants / * 0 types. Both assertions must happen here, at the one level where an * error still escapes. */ private static resolveTsExtractionConfig; private static mergeTsConfig; /** * Extract all components in parallel with proper error handling */ extractAllComponents(manifests: ComponentManifest[]): Promise; /** * Extract single component with all extractors */ extractComponent(manifest: ComponentManifest): Promise; /** * Generate extraction statistics for reporting */ generateExtractionStats(richComponents: ComponentInfo[]): { totalComponents: number; totalProps: number; totalVariants: number; averagePropsPerComponent: number; componentsWithVariants: number; componentsWithDocumentation: number; extractionErrors: number; }; /** * Clear all extractor caches */ clearCache(): void; /** * Update configuration (reusing one coordinator across runs). * * Threads `input.typescript.configPath` exactly like the constructor — * merged into the extraction config and eagerly validated *before* the * extractors are rebuilt. Pre-fix this path forwarded only the raw * `ProcessingConfig`, so an update silently dropped the tsconfig and every * subsequent run fell back to single-file extraction (cross-file types * missing from the artifacts, no error). Callers that carry a * `GeneratorConfig` must pass its `input.typescript` here, mirroring the * construction call in PipelineOrchestrator.extractionPhase(). */ updateConfig(newConfig: ProcessingConfig, inputTypeScript?: TypeScriptConfig): void; private extractProps; private extractVariants; /** * Extract the tv() `slots:` keys (the real `slotClasses` slot names). * Reuses the cached VariantsExtractor instance; failure is non-fatal — * a component simply reports no slots rather than aborting extraction. */ private extractSlotNames; private extractInheritance; private extractLocalTypes; private extractSummary; private extractDescription; private extractTags; private extractRelated; private extractStability; private extractExamples; private extractInParallel; private createBatches; } //# sourceMappingURL=ExtractionCoordinator.d.ts.map