UNPKG

@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

61 lines (60 loc) 2.63 kB
import type { AIProviderName } from "../constants/enums.js"; import type { AIProvider, NeurolinkCredentials, ProviderConstructor, ProviderRegistration, UnknownRecord } from "../types/index.js"; /** * True Factory Pattern implementation for AI Providers * Uses registration-based approach to eliminate switch statements * and enable dynamic provider registration */ export declare class ProviderFactory { private static readonly providers; private static initialized; /** * Register a provider with the factory */ static registerProvider(name: AIProviderName | string, constructor: ProviderConstructor, defaultModel?: string, // Optional - provider can read from env aliases?: string[]): void; /** * Create a provider instance * @param providerName - Provider name (optional, uses NEUROLINK_PROVIDER env var or 'vertex' as default) * @param modelName - Model name (optional, uses provider-specific env var or registry default) */ static createProvider(providerName?: AIProviderName | string, modelName?: string, sdk?: UnknownRecord, region?: string, credentials?: NeurolinkCredentials): Promise<AIProvider>; /** * Check if a provider is registered */ static hasProvider(providerName: string): boolean; /** * Get list of available providers */ static getAvailableProviders(): string[]; /** * Get provider registration info */ static getProviderInfo(providerName: string): ProviderRegistration | undefined; /** * Normalize provider names using aliases (PHASE 1: Factory Pattern) */ static normalizeProviderName(providerName: string): string | null; /** * Clear all registrations (mainly for testing) */ static clearRegistrations(): void; /** * Ensure providers are initialized */ private static ensureInitialized; /** * Initialize default providers * NOTE: Providers are now registered by ProviderRegistry to avoid circular dependencies */ private static initializeDefaultProviders; /** * Create the best available provider for the given name * Used by NeuroLink SDK for streaming and generation */ static createBestProvider(providerName: AIProviderName | string, modelName?: string, enableMCP?: boolean, sdk?: UnknownRecord, credentials?: NeurolinkCredentials): Promise<AIProvider>; } /** * Helper function to create providers with backward compatibility */ export declare function createAIProvider(providerName: AIProviderName | string, modelName?: string, credentials?: NeurolinkCredentials): Promise<AIProvider>;