import type { SystemPromptConfig, TuneConfig } from '../types/config.js';
import type { DevelopmentMode } from '../types/core.js';
/** Reset section cache for testing. */
export declare function resetSectionCache(): void;
/**
 * Get the last system prompt produced by buildSystemPrompt().
 * Falls back to a minimal prompt if buildSystemPrompt hasn't been called yet.
 */
export declare function getLastBuiltPrompt(): string;
/**
 * Update the cached prompt after post-processing (e.g. XML tool injection).
 * Ensures token-counting callers see the full prompt the model receives.
 */
export declare function setLastBuiltPrompt(prompt: string): void;
/**
 * Build a system prompt dynamically based on development mode, tune config, and available tools.
 *
 * Sections are full quality — the prompt gets smaller only because sections for
 * unavailable tools are excluded entirely, not because content is truncated.
 *
 * When `systemPromptOverride` is provided, the user's custom prompt either replaces
 * the built-in prompt entirely (mode="replace", the default) or is appended to it
 * (mode="append").
 */
export declare function buildSystemPrompt(developmentMode: DevelopmentMode, tuneConfig: TuneConfig | undefined, availableToolNames: string[], toolsDisabled?: boolean, systemPromptOverride?: SystemPromptConfig, model?: string): string;
//# sourceMappingURL=prompt-builder.d.ts.map