@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
70 lines (69 loc) • 2.47 kB
TypeScript
import type { LanguageModel } from "ai";
import type { MiddlewareContext, MiddlewareConfig, MiddlewareFactoryOptions, MiddlewareChainStats, MiddlewarePreset, NeuroLinkMiddleware, MiddlewareRegistrationOptions } from "../types/index.js";
import { MiddlewareRegistry } from "./registry.js";
/**
* Middleware factory for creating and applying middleware chains.
* Each factory instance manages its own registry and configuration.
*/
export declare class MiddlewareFactory {
registry: MiddlewareRegistry;
presets: Map<string, MiddlewarePreset>;
private options;
constructor(options?: MiddlewareFactoryOptions);
/**
* Initialize the factory with built-in middleware and presets
*/
private initialize;
/**
* Register a custom preset
*/
registerPreset(preset: MiddlewarePreset, replace?: boolean): void;
/**
* Register a custom middleware
*/
register(middleware: NeuroLinkMiddleware, options?: MiddlewareRegistrationOptions): void;
/**
* Apply middleware to a language model
*/
applyMiddleware(model: LanguageModel, context: MiddlewareContext, options?: MiddlewareFactoryOptions): LanguageModel;
private getCreator;
/**
* Build middleware configuration from factory options
*/
private buildMiddlewareConfig;
/**
* Get preset configuration
*/
private getPresetConfig;
/**
* Create middleware context from provider and options
*/
createContext(provider: string, model: string, options?: Record<string, unknown>, session?: {
sessionId?: string;
userId?: string;
}): MiddlewareContext;
/**
* Validate middleware configuration
*/
validateConfig(config: Record<string, MiddlewareConfig>): {
isValid: boolean;
errors: string[];
warnings: string[];
};
/**
* Get available presets
*/
getAvailablePresets(): Array<{
name: string;
description: string;
middleware: string[];
}>;
/**
* Get middleware chain statistics
*/
getChainStats(context: MiddlewareContext, config: Record<string, MiddlewareConfig>): MiddlewareChainStats;
/**
* Create a middleware-enabled model factory function
*/
createModelFactory(baseModelFactory: () => Promise<LanguageModel>, defaultOptions?: MiddlewareFactoryOptions): (context: MiddlewareContext, options?: MiddlewareFactoryOptions) => Promise<LanguageModel>;
}