@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
TypeScript
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>;