/** * Variant Import/Export Management System * Manages TypeScript imports and exports across variants including barrel exports and cross-variant references */ import { VariantType, ModelVariantCollection } from '../types/variants'; /** * Import statement configuration */ export interface ImportStatement { moduleSpecifier: string; namedImports: string[]; defaultImport?: string; namespaceImport?: string; isTypeOnly?: boolean; } /** * Export statement configuration */ export interface ExportStatement { namedExports: string[]; moduleSpecifier?: string; defaultExport?: string; namespaceExport?: string; isTypeOnly?: boolean; } /** * Barrel export configuration */ export interface BarrelExportConfig { variantType: VariantType; includeTypes: boolean; includeSchemas: boolean; groupByModel: boolean; customHeader?: string; sortExports: boolean; } /** * Cross-variant reference mapping */ export interface CrossVariantReference { sourceVariant: VariantType; targetVariant: VariantType; referencedItems: string[]; referenceType: 'import' | 'extends' | 'utility'; } /** * Module resolution configuration */ export interface ModuleResolutionConfig { baseUrl: string; paths: Record; extensions: string[]; useRelativePaths: boolean; pathMapping: Record; } /** * Export validation result */ export interface ExportValidationResult { isValid: boolean; circularDependencies: string[][]; unresolvedImports: string[]; duplicateExports: string[]; warnings: string[]; } /** * Variant Import/Export Manager * Central manager for handling all import/export operations across variants */ export declare class VariantImportExportManager { private moduleResolutionConfig; private globalImports; private exportCache; constructor(moduleResolutionConfig?: Partial); /** * Generate barrel export files for all variant types */ generateBarrelExports(collections: ModelVariantCollection[], configs: Record, importExtension?: string): Promise<{ files: Array<{ path: string; content: string; exports: string[]; }>; mainIndex: { path: string; content: string; exports: string[]; }; }>; /** * Generate barrel export for a specific variant type */ private generateVariantBarrelExport; /** * Generate main index file that exports all variant barrels */ private generateMainIndexFile; /** * Handle cross-variant references */ manageCrossVariantReferences(collections: ModelVariantCollection[]): Promise; /** * Update files with cross-variant imports */ private updateFilesWithCrossVariantImports; /** * Add imports to a specific file */ private addImportsToFile; /** * Validate export consistency and detect issues */ validateExports(collections: ModelVariantCollection[]): ExportValidationResult; /** * Private helper methods */ private generateBarrelFileContent; private generateMainIndexContent; private resolveModulePath; private extractVariantTypeFromPath; private findReferencedItems; private determineReferenceType; private generateImportStatements; private formatImportStatement; private findImportInsertionPoint; private detectCircularDependencies; private findUnresolvedImports; private isExternalImport; } export default VariantImportExportManager;