@juspay/neurolink
Version:
Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio
104 lines (103 loc) • 3.63 kB
TypeScript
/**
* Metadata Extractor Factory
*
* Factory for creating metadata extractor instances with configuration.
* Follows the BaseFactory pattern for consistent lifecycle management.
*/
import { BaseFactory } from "../../core/infrastructure/index.js";
import type { MetadataExtractor, MetadataExtractorConfig, MetadataExtractorMetadata, MetadataExtractorType } from "../../types/index.js";
/**
* Metadata Extractor Factory
*
* Creates metadata extractor instances based on type with configuration support.
* Uses lazy loading via dynamic imports to avoid circular dependencies.
*/
export declare class MetadataExtractorFactory extends BaseFactory<MetadataExtractor, MetadataExtractorConfig> {
private static instance;
private metadataMap;
private constructor();
/**
* Get singleton instance
*/
static getInstance(): MetadataExtractorFactory;
/**
* Reset singleton (for testing)
*/
static resetInstance(): void;
/**
* Register all default extractors
*/
protected registerAll(): Promise<void>;
/**
* Wrap LLMMetadataExtractor to conform to MetadataExtractor interface
*/
private wrapExtractor;
/**
* Create specialized extractor that only extracts specific types
*/
private createSpecializedExtractor;
/**
* Register an extractor with metadata and aliases
*/
registerExtractor(type: MetadataExtractorType, factory: (config?: MetadataExtractorConfig) => Promise<MetadataExtractor>, metadata: MetadataExtractorMetadata): void;
/**
* Create an extractor by type or alias
*/
createExtractor(typeOrAlias: string, config?: MetadataExtractorConfig): Promise<MetadataExtractor>;
/**
* Get metadata for an extractor
*/
getExtractorMetadata(typeOrAlias: string): MetadataExtractorMetadata | undefined;
/**
* Get default configuration for an extractor
*/
getDefaultConfig(typeOrAlias: string): Partial<MetadataExtractorConfig> | undefined;
/**
* Get available extractor types (not including aliases)
*/
getAvailableTypes(): MetadataExtractorType[];
/**
* Get all aliases mapped to their types
*/
getTypeAliases(): Map<string, string>;
/**
* Check if a type exists
*/
hasType(typeOrAlias: string): boolean;
/**
* Get extractors suitable for a use case
*/
getExtractorsForUseCase(useCase: string): MetadataExtractorType[];
/**
* Get extractors that can produce a specific extraction type
*/
getExtractorsForExtractionType(extractionType: string): MetadataExtractorType[];
/**
* Get all extractor metadata
*/
getAllMetadata(): Map<MetadataExtractorType, MetadataExtractorMetadata>;
/**
* Clear factory and metadata
*/
clear(): void;
}
/**
* Global metadata extractor factory singleton
*/
export declare const metadataExtractorFactory: MetadataExtractorFactory;
/**
* Convenience function to create a metadata extractor
*/
export declare function createMetadataExtractor(typeOrAlias: string, config?: MetadataExtractorConfig): Promise<MetadataExtractor>;
/**
* Convenience function to get available extractor types
*/
export declare function getAvailableExtractorTypes(): MetadataExtractorType[];
/**
* Convenience function to get extractor metadata
*/
export declare function getExtractorMetadata(typeOrAlias: string): MetadataExtractorMetadata | undefined;
/**
* Convenience function to get default config
*/
export declare function getExtractorDefaultConfig(typeOrAlias: string): Partial<MetadataExtractorConfig> | undefined;