/**
 * Memory retrieval tools for LLM access to conversation history.
 * Enables the AI to retrieve full tool outputs, review previous messages,
 * and search conversation memory.
 *
 * Follows the createFileTools() factory pattern from files/fileTools.ts.
 * @module
 */
import type { RedisConversationMemoryManager } from "../core/redisConversationMemoryManager.js";
import type { ArtifactStore } from "../types/index.js";
/**
 * Factory function that creates memory retrieval tools bound to a memory manager.
 *
 * @param memoryManager  Redis conversation memory manager instance.
 * @param artifactStore  Optional artifact store for externalized MCP outputs.
 *                       When provided, retrieve_context gains an `artifactId`
 *                       parameter that fetches the full payload written by
 *                       McpOutputNormalizer under strategy="externalize".
 * @returns Record of tool name to Vercel AI SDK tool definition
 */
export declare function createMemoryRetrievalTools(memoryManager: RedisConversationMemoryManager | undefined, artifactStore?: ArtifactStore): {
    retrieve_context: import("ai").Tool<{
        sessionId?: string | undefined;
        artifactId?: string | undefined;
        messageId?: string | undefined;
        role?: "system" | "user" | "assistant" | "tool_call" | "tool_result" | undefined;
        lastN?: number | undefined;
        offset?: number | undefined;
        limit?: number | undefined;
        search?: string | undefined;
    }, {
        error: string;
        artifactId: string;
        content?: undefined;
        totalSize?: undefined;
        hasMore?: undefined;
        offset?: undefined;
        limit?: undefined;
        sessionId?: undefined;
        messageId?: undefined;
        messages?: undefined;
        totalMessages?: undefined;
    } | {
        artifactId: string;
        content: string;
        totalSize: number;
        hasMore: boolean;
        offset: number;
        limit: number;
        error?: undefined;
        sessionId?: undefined;
        messageId?: undefined;
        messages?: undefined;
        totalMessages?: undefined;
    } | {
        error: string;
        artifactId?: undefined;
        content?: undefined;
        totalSize?: undefined;
        hasMore?: undefined;
        offset?: undefined;
        limit?: undefined;
        sessionId?: undefined;
        messageId?: undefined;
        messages?: undefined;
        totalMessages?: undefined;
    } | {
        error: string;
        sessionId: string;
        artifactId?: undefined;
        content?: undefined;
        totalSize?: undefined;
        hasMore?: undefined;
        offset?: undefined;
        limit?: undefined;
        messageId?: undefined;
        messages?: undefined;
        totalMessages?: undefined;
    } | {
        error: string;
        messageId: string;
        artifactId?: undefined;
        content?: undefined;
        totalSize?: undefined;
        hasMore?: undefined;
        offset?: undefined;
        limit?: undefined;
        sessionId?: undefined;
        messages?: undefined;
        totalMessages?: undefined;
    } | {
        messages: ({
            id: string;
            error: string;
            role?: undefined;
            tool?: undefined;
            matchCount?: undefined;
            matches?: undefined;
            totalSize?: undefined;
            content?: undefined;
            hasMore?: undefined;
        } | {
            id: string;
            role: "system" | "user" | "assistant" | "tool_call" | "tool_result";
            tool: string | undefined;
            matchCount: number;
            matches: {
                line: number;
                text: string;
            }[];
            totalSize: number;
            error?: undefined;
            content?: undefined;
            hasMore?: undefined;
        } | {
            id: string;
            role: "system" | "user" | "assistant" | "tool_call" | "tool_result";
            tool: string | undefined;
            content: string;
            totalSize: number;
            hasMore: boolean;
            error?: undefined;
            matchCount?: undefined;
            matches?: undefined;
        })[];
        totalMessages: number;
        error?: undefined;
        artifactId?: undefined;
        content?: undefined;
        totalSize?: undefined;
        hasMore?: undefined;
        offset?: undefined;
        limit?: undefined;
        sessionId?: undefined;
        messageId?: undefined;
    }>;
};
