/**
 * Recall Tool
 *
 * Search and retrieve memories using semantic search and filters.
 */
import { z } from 'zod';
import { Memory } from '../memory/types.js';
import type { DefenceSource } from '../defence/types.js';
export declare const recallSchema: z.ZodObject<{
    query: z.ZodOptional<z.ZodString>;
    category: z.ZodOptional<z.ZodEnum<["architecture", "pattern", "preference", "error", "context", "learning", "todo", "note", "relationship", "custom"]>>;
    type: z.ZodOptional<z.ZodEnum<["short_term", "long_term", "episodic"]>>;
    project: z.ZodOptional<z.ZodString>;
    tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
    includeDecayed: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    includeGlobal: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    mode: z.ZodDefault<z.ZodOptional<z.ZodEnum<["search", "recent", "important"]>>>;
    source: z.ZodOptional<z.ZodObject<{
        type: z.ZodEnum<["user", "cli", "hook", "email", "web", "agent", "file", "api", "tool_response"]>;
        identifier: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "api" | "tool_response";
        identifier: string;
    }, {
        type: "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "api" | "tool_response";
        identifier: string;
    }>>;
}, "strip", z.ZodTypeAny, {
    mode: "search" | "important" | "recent";
    limit: number;
    includeDecayed: boolean;
    includeGlobal: boolean;
    type?: "short_term" | "long_term" | "episodic" | undefined;
    source?: {
        type: "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "api" | "tool_response";
        identifier: string;
    } | undefined;
    project?: string | undefined;
    category?: "context" | "pattern" | "architecture" | "preference" | "error" | "learning" | "todo" | "note" | "relationship" | "custom" | undefined;
    tags?: string[] | undefined;
    query?: string | undefined;
}, {
    type?: "short_term" | "long_term" | "episodic" | undefined;
    source?: {
        type: "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "api" | "tool_response";
        identifier: string;
    } | undefined;
    project?: string | undefined;
    mode?: "search" | "important" | "recent" | undefined;
    limit?: number | undefined;
    category?: "context" | "pattern" | "architecture" | "preference" | "error" | "learning" | "todo" | "note" | "relationship" | "custom" | undefined;
    tags?: string[] | undefined;
    query?: string | undefined;
    includeDecayed?: boolean | undefined;
    includeGlobal?: boolean | undefined;
}>;
export type RecallInput = z.infer<typeof recallSchema>;
/**
 * Execute the recall tool
 */
export declare function executeRecall(input: RecallInput): Promise<{
    success: boolean;
    memories?: Memory[];
    contradictions?: Map<number, {
        memoryId: number;
        title: string;
        score: number;
    }[]>;
    count?: number;
    error?: string;
}>;
/**
 * Format a single memory for display
 */
export declare function formatMemory(memory: Memory, verbose?: boolean): string;
/**
 * Format the recall result for MCP response
 */
export declare function formatRecallResult(result: Awaited<ReturnType<typeof executeRecall>>, verbose?: boolean): string;
/**
 * Get a single memory by ID
 */
export declare const getMemorySchema: z.ZodObject<{
    id: z.ZodNumber;
    source: z.ZodOptional<z.ZodObject<{
        type: z.ZodEnum<["user", "cli", "hook", "email", "web", "agent", "file", "api", "tool_response"]>;
        identifier: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "api" | "tool_response";
        identifier: string;
    }, {
        type: "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "api" | "tool_response";
        identifier: string;
    }>>;
}, "strip", z.ZodTypeAny, {
    id: number;
    source?: {
        type: "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "api" | "tool_response";
        identifier: string;
    } | undefined;
}, {
    id: number;
    source?: {
        type: "user" | "cli" | "hook" | "email" | "web" | "agent" | "file" | "api" | "tool_response";
        identifier: string;
    } | undefined;
}>;
export declare function executeGetMemory(input: {
    id: number;
    source?: DefenceSource;
}): {
    success: boolean;
    memory?: Memory;
    error?: string;
};
