@juspay/neurolink
Version:
The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002
102 lines (101 loc) • 3.62 kB
TypeScript
/**
* Chunker Factory
*
* Factory for creating chunker instances with configuration.
* Follows the BaseFactory pattern for consistent lifecycle management.
*/
import { BaseFactory } from "../core/infrastructure/index.js";
import type { Chunker, ChunkerConfig, ChunkerMetadata, ChunkingStrategy } from "../types/index.js";
/**
* Chunker Factory
*
* Creates chunker instances based on strategy with configuration support.
* Uses lazy loading via dynamic imports to avoid circular dependencies.
*/
export declare class ChunkerFactory extends BaseFactory<Chunker, ChunkerConfig> {
private static instance;
private metadataMap;
private constructor();
/**
* Get singleton instance
*/
static getInstance(): ChunkerFactory;
/**
* Reset singleton (for testing)
*/
static resetInstance(): void;
/**
* Register all default chunkers
*/
protected registerAll(): Promise<void>;
/**
* Register a chunker with metadata and aliases
*/
registerChunker(strategy: ChunkingStrategy | string, factory: (config?: ChunkerConfig) => Promise<Chunker>, metadata: ChunkerMetadata): void;
/**
* Create a chunker by strategy name or alias
*/
createChunker(strategyOrAlias: string, config?: ChunkerConfig): Promise<Chunker>;
/**
* Get metadata for a chunker.
*
* Awaits registration first. `metadataMap` and the alias map are populated by
* `registerAll()`, which only runs via the async `ensureInitialized()` — and
* the only place that awaited it was `create()`. So on a fresh process this
* returned `undefined` for every strategy until something happened to build a
* chunker first, and returned real metadata after. Order-dependent, silent,
* and `undefined` rather than a throw.
*
* `createChunker()` and `getAvailableStrategies()` were already async for
* exactly this reason; these readers were the ones that had not caught up.
*/
getChunkerMetadata(strategyOrAlias: string): Promise<ChunkerMetadata | undefined>;
/**
* Get default configuration for a chunker
*/
getDefaultConfig(strategyOrAlias: string): Promise<ChunkerConfig | undefined>;
/**
* Get available chunking strategies (not including aliases)
*/
getAvailableStrategies(): Promise<ChunkingStrategy[]>;
/**
* Get all aliases mapped to their strategies
*/
getStrategyAliases(): Promise<Map<string, string>>;
/**
* Check if a strategy exists
*/
hasStrategy(strategyOrAlias: string): Promise<boolean>;
/**
* Get chunkers suitable for a use case
*/
getChunkersForUseCase(useCase: string): Promise<ChunkingStrategy[]>;
/**
* Get all chunker metadata
*/
getAllMetadata(): Promise<Map<string, ChunkerMetadata>>;
/**
* Clear factory and metadata
*/
clear(): void;
}
/**
* Global chunker factory singleton
*/
export declare const chunkerFactory: ChunkerFactory;
/**
* Convenience function to create a chunker
*/
export declare function createChunker(strategyOrAlias: string, config?: ChunkerConfig): Promise<Chunker>;
/**
* Convenience function to get available strategies
*/
export declare function getAvailableStrategies(): Promise<ChunkingStrategy[]>;
/**
* Convenience function to get chunker metadata
*/
export declare function getChunkerMetadata(strategyOrAlias: string): Promise<ChunkerMetadata | undefined>;
/**
* Convenience function to get default config
*/
export declare function getDefaultConfig(strategyOrAlias: string): Promise<ChunkerConfig | undefined>;