import type { ReflectorResult as BaseReflectorResult } from './types.js';
/**
 * Result from parsing Reflector output, extending the base type with
 * token count used for compression validation.
 */
export interface ReflectorResult extends BaseReflectorResult {
    /** Token count of output (for compression validation) */
    tokenCount?: number;
}
/**
 * Build the Reflector's system prompt.
 *
 * The Reflector handles meta-observation - when observations grow too large,
 * it reorganizes them into something more manageable by:
 * - Re-organizing and streamlining observations
 * - Drawing connections and conclusions between observations
 * - Identifying if the agent got off track and how to get back on track
 * - Preserving ALL important information (reflections become the ENTIRE memory)
 *
 * @param instruction - Optional custom instructions to append to the prompt
 */
export declare function buildReflectorSystemPrompt(instruction?: string): string;
/**
 * The Reflector's system prompt (default - for backwards compatibility)
 */
export declare const REFLECTOR_SYSTEM_PROMPT: string;
/**
 * Compression guidance by level.
 * - Level 0: No compression guidance (used as first attempt for regular reflection)
 * - Level 1: Gentle compression guidance (original wording — "slightly more" goes a long way for LLMs)
 * - Level 2: Aggressive compression guidance (stronger push when level 1 didn't work)
 */
export declare const COMPRESSION_GUIDANCE: Record<0 | 1 | 2 | 3, string>;
/**
 * Compression retry prompt - backwards compat alias for level 1
 */
export declare const COMPRESSION_RETRY_PROMPT: string;
/**
 * Build the prompt for the Reflector agent
 */
export declare function buildReflectorPrompt(observations: string, manualPrompt?: string, compressionLevel?: boolean | 0 | 1 | 2 | 3, skipContinuationHints?: boolean): string;
/**
 * Parse the Reflector's output to extract observations, current task, and suggested response.
 * Uses XML tag parsing for structured extraction.
 */
export declare function parseReflectorOutput(output: string, sourceObservations?: string): ReflectorResult;
/**
 * Validate that reflection actually compressed the observations below the target threshold
 *
 * @param reflectedTokens - Token count of reflected observations
 * @param targetThreshold - Target token count to compress below (the reflection threshold)
 * @returns true if compression was successful (reflected tokens are below target)
 */
export declare function validateCompression(reflectedTokens: number, targetThreshold: number): boolean;
//# sourceMappingURL=reflector-agent.d.ts.map