export type PromptLayer = { /** Cache-friendly: rarely changes within a session. */ stable: boolean; /** Human-readable label for diagnostics. */ label: string; /** The text content. Empty strings are filtered out by buildLayeredPrompt. */ content: string; }; /** * Concatenates layers preserving the stable/dynamic boundary. Returns: * - stablePrefix: all stable layers joined (cache key for provider) * - dynamicSuffix: all dynamic layers joined (per-turn content) * - combined: the full prompt (what callers that don't support caching use) * * Stable layers are emitted first so providers that match by prefix can hit * the cache. Within each tier, order matches input order. */ export declare function buildLayeredPrompt(layers: ReadonlyArray): { stablePrefix: string; dynamicSuffix: string; combined: string; }; /** * Classify the existing system-prompt sections into layers. Used by * get-reply-run.ts as a non-invasive upgrade path: each section that's * already produced by buildAgentSystemPrompt + the klaw* sections gets * tagged here without changing the section content itself. */ export declare function classifyKlawPromptSection(section: string): { stable: boolean; label: string; };