import { type Tokenizer } from "@llamaindex/env"; import type { SimplePrompt } from "./Prompt.js"; import { SentenceSplitter } from "./TextSplitter.js"; export declare function getEmptyPromptTxt(prompt: SimplePrompt): string; /** * Get biggest empty prompt size from a list of prompts. * Used to calculate the maximum size of inputs to the LLM. * @param prompts * @returns */ export declare function getBiggestPrompt(prompts: SimplePrompt[]): SimplePrompt; /** * A collection of helper functions for working with prompts. */ export declare class PromptHelper { contextWindow: number; numOutput: number; chunkOverlapRatio: number; chunkSizeLimit?: number; tokenizer: Tokenizer; separator: string; constructor(contextWindow?: number, numOutput?: number, chunkOverlapRatio?: number, chunkSizeLimit?: number, tokenizer?: Tokenizer, separator?: string); /** * Given a prompt, return the maximum size of the inputs to the prompt. * @param prompt * @returns */ private getAvailableContextSize; /** * Find the maximum size of each chunk given a prompt. * @param prompt * @param numChunks * @param padding * @returns */ private getAvailableChunkSize; /** * Creates a text splitter with the correct chunk sizes and overlaps given a prompt. * @param prompt * @param numChunks * @param padding * @returns */ getTextSplitterGivenPrompt(prompt: SimplePrompt, numChunks?: number, padding?: number): SentenceSplitter; /** * Repack resplits the strings based on the optimal text splitter. * @param prompt * @param textChunks * @param padding * @returns */ repack(prompt: SimplePrompt, textChunks: string[], padding?: number): string[]; }