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: (text: string) => Uint32Array;
    separator: string;
    constructor(contextWindow?: number, numOutput?: number, chunkOverlapRatio?: number, chunkSizeLimit?: number, tokenizer?: (text: string) => Uint32Array, 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[];
}
