import type { LLMClient, Message } from '../types/core.js';
import type { Tokenizer } from '../types/tokenization.js';
export interface SummariseWithLLMParams {
    messages: Message[];
    systemMessage: Message;
    client: LLMClient;
    tokenizer: Tokenizer;
    keepRecentMessages?: number;
    signal?: AbortSignal;
}
/**
 * Summarise the compressible portion of a conversation using the active LLM.
 *
 * Splits `messages` into a compressible segment and a tail of recent messages
 * (kept verbatim), asks the model to produce a structured summary of the
 * compressible segment, then returns `[summary, ...recent]`. The system
 * message is intentionally not included in the return value — the chat
 * handler re-injects it on each call.
 *
 * Returns null when there is nothing meaningful to summarise (segment empty
 * or model returned an empty response).
 */
export declare function summariseWithLLM(params: SummariseWithLLMParams): Promise<Message[] | null>;
//# sourceMappingURL=llm-summariser.d.ts.map