import type { string_book } from '../../../book-2.0/agent-source/string_book';
import type { ChatPromptResult } from '../../../execution/PromptResult';
import type { Prompt } from '../../../types/Prompt';
import type { SelfLearningTeacherSummary } from '../../../types/ToolCall';
/**
 * Agent interface used for teacher-based self-learning calls.
 *
 * @private type of Agent
 */
type SelfLearningTeacherAgent = {
    callChatModel(prompt: Prompt): Promise<ChatPromptResult>;
};
/**
 * Options required to drive the self-learning workflow.
 *
 * @private type of Agent
 */
type SelfLearningManagerOptions = {
    teacherAgent: SelfLearningTeacherAgent | null;
    getAgentSource: () => string_book;
    updateAgentSource: (source: string_book) => void;
};
/**
 * Coordinates the Agent self-learning workflow that was extracted from the main class.
 *
 * @private helper for Agent
 */
export declare class SelfLearningManager {
    private readonly options;
    private readonly teacherAgent;
    constructor(options: SelfLearningManagerOptions);
    /**
     * Runs nonce, sampling, and teacher steps for every interaction that should learn.
     *
     * @param prompt Received prompt for the interaction
     * @param result Response produced by the agent
     * @returns Teacher summary or null when no teacher is configured
     * @private helper of Agent
     */
    runSelfLearning(prompt: Prompt, result: ChatPromptResult): Promise<SelfLearningTeacherSummary | null>;
    /**
     * Appends the nonce section to the agent source with slight delay to avoid thundering herd lookups.
     *
     * @private helper of Agent
     */
    private appendNonce;
    /**
     * Appends the recent user/agent exchange as a new sample.
     *
     * @private helper of Agent
     */
    private appendSample;
    /**
     * Calls the teacher agent, appends its commitments, and summarizes the results.
     *
     * @private helper of Agent
     */
    private callTeacher;
    /**
     * Appends a new fragment to the agent source and triggers normalization.
     *
     * @param section Fragment that should be appended
     * @private helper of Agent
     */
    private appendToAgentSource;
}
export {};
