/**
 * Cache breakpoint calculation for prompt caching.
 *
 * Strategy based on Anthropic's recommendations for multi-turn conversations:
 * - Cache system prompt (stable, high reuse across all requests)
 * - Cache incrementally at the end of each turn (enables incremental caching)
 *
 * This approach is more effective than token-interval based placement because:
 * 1. System prompts are identical across requests, maximizing cache hits
 * 2. End-of-conversation caching enables incremental cache growth
 * 3. We use our limited breakpoints (max 4) on meaningful content boundaries
 *
 * @see https://platform.claude.com/docs/en/build-with-claude/prompt-caching#continuing-a-multi-turn-conversation
 */
import type { CachingConfig } from "./config.js";
import type { StoredMessage } from "./types.js";
/**
 * Input for cache breakpoint calculation.
 */
export interface CacheInput {
    messages: StoredMessage[];
    hasSystemPrompt: boolean;
    config: CachingConfig;
}
/**
 * Finds optimal cache breakpoint positions in message array.
 *
 * Strategy (per Anthropic's recommendation):
 * - Always place breakpoint at system prompt (index 0) if present
 * - Place breakpoint at the last message for incremental caching
 *
 * The system automatically checks backwards up to 20 blocks for cache hits,
 * so we don't need to place breakpoints at intermediate positions.
 *
 * @see https://platform.claude.com/docs/en/build-with-claude/prompt-caching
 * @returns Array of message indices where cache breakpoints should be placed
 */
export declare function findBreakpoints(input: CacheInput): number[];
//# sourceMappingURL=caching.d.ts.map