@juspay/neurolink
Version:
Universal AI Development Platform with working MCP integration, multi-provider support, and professional CLI. Built-in tools operational, 58+ external MCP servers discoverable. Connect to filesystem, GitHub, database operations, and more. Build, test, and
74 lines (73 loc) • 2.71 kB
TypeScript
import type { AIProvider, AIProviderName } from "../core/types.js";
import type { UnknownRecord } from "../types/common.js";
/**
* Provider constructor interface - supports both sync constructors and async factory functions
*/
type ProviderConstructor = {
new (modelName?: string, providerName?: string, sdk?: UnknownRecord): AIProvider;
} | ((modelName?: string, providerName?: string, sdk?: UnknownRecord) => Promise<AIProvider>);
/**
* Provider registration entry
*/
interface ProviderRegistration {
constructor: ProviderConstructor;
defaultModel?: string;
aliases?: string[];
}
/**
* 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
*/
static createProvider(providerName: AIProviderName | string, modelName?: string, sdk?: UnknownRecord): 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): Promise<AIProvider>;
}
/**
* Helper function to create providers with backward compatibility
*/
export declare function createAIProvider(providerName: AIProviderName | string, modelName?: string): Promise<AIProvider>;
export {};