import { LlamaChat, LlamaModel, LlamaContext, LlamaCompletion, LlamaContextSequence, LlamaGrammar, ChatHistoryItem, LlamaChatResponse, LlamaEmbeddingContext, GgufFileInfo, LLamaChatContextShiftOptions, LlamaContextOptions, ChatWrapper } from 'node-llama-cpp'; import { ChatCompletionTaskResult, TextCompletionTaskResult, EngineContext, ToolDefinition, EmbeddingTaskResult, FileDownloadProgress, ModelConfig, TextCompletionGrammar, ChatMessage, EngineTaskContext, EngineTextCompletionTaskContext, TextCompletionParamsBase, ChatCompletionTaskArgs, TextCompletionTaskArgs, EmbeddingTaskArgs } from '../../types/index.js'; export interface NodeLlamaCppInstance { model: LlamaModel; context: LlamaContext; chat?: LlamaChat; chatHistory: ChatHistoryItem[]; grammars: Record; pendingFunctionCalls: Record; lastEvaluation?: LlamaChatResponse['lastEvaluation']; embeddingContext?: LlamaEmbeddingContext; completion?: LlamaCompletion; contextSequence: LlamaContextSequence; chatWrapper?: ChatWrapper; } export interface NodeLlamaCppModelMeta { gguf: GgufFileInfo; } export interface NodeLlamaCppModelConfig extends ModelConfig { location: string; grammars?: Record; sha256?: string; completionDefaults?: TextCompletionParamsBase; initialMessages?: ChatMessage[]; prefix?: string; tools?: { definitions?: Record; documentParams?: boolean; maxParallelCalls?: number; }; contextSize?: number; batchSize?: number; lora?: LlamaContextOptions['lora']; contextShiftStrategy?: LLamaChatContextShiftOptions['strategy']; chatWrapper?: ChatWrapper; device?: { gpu?: boolean | 'auto' | (string & {}); gpuLayers?: number; cpuThreads?: number; memLock?: boolean; }; } export declare const autoGpu = true; export declare function prepareModel({ config, log }: EngineContext, onProgress?: (progress: FileDownloadProgress) => void, signal?: AbortSignal): Promise<{ gguf?: any; } | undefined>; export declare function createInstance({ config, log }: EngineContext, signal?: AbortSignal): Promise; export declare function disposeInstance(instance: NodeLlamaCppInstance): Promise; export declare function processChatCompletionTask(task: ChatCompletionTaskArgs, ctx: EngineTextCompletionTaskContext, signal?: AbortSignal): Promise; export declare function processTextCompletionTask(task: TextCompletionTaskArgs, ctx: EngineTextCompletionTaskContext, signal?: AbortSignal): Promise; export declare function processEmbeddingTask(task: EmbeddingTaskArgs, ctx: EngineTaskContext, signal?: AbortSignal): Promise;