/**
 * Context Tool
 *
 * Manages context injection and session handling.
 * This is the key tool for solving the compaction problem.
 */
import { z } from 'zod';
import { getMemoryStats } from '../memory/store.js';
import { Memory, ContextSummary, ConsolidationResult } from '../memory/types.js';
export declare const getContextSchema: z.ZodObject<{
    project: z.ZodOptional<z.ZodString>;
    query: z.ZodOptional<z.ZodString>;
    format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["summary", "detailed", "raw"]>>>;
    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" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
        identifier: string;
    }, {
        type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
        identifier: string;
    }>>;
}, "strip", z.ZodTypeAny, {
    format: "summary" | "detailed" | "raw";
    source?: {
        type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
        identifier: string;
    } | undefined;
    project?: string | undefined;
    query?: string | undefined;
}, {
    source?: {
        type: "user" | "cli" | "hook" | "agent" | "api" | "email" | "web" | "file" | "tool_response";
        identifier: string;
    } | undefined;
    project?: string | undefined;
    format?: "summary" | "detailed" | "raw" | undefined;
    query?: string | undefined;
}>;
export type GetContextInput = z.infer<typeof getContextSchema>;
/**
 * Execute the get_context tool
 */
export declare function executeGetContext(input: GetContextInput): Promise<{
    success: boolean;
    context?: string;
    summary?: ContextSummary;
    relevantMemories?: Memory[];
    error?: string;
}>;
export declare const startSessionSchema: z.ZodObject<{
    project: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    project?: string | undefined;
}, {
    project?: string | undefined;
}>;
export declare function executeStartSession(input: {
    project?: string;
}): Promise<{
    success: boolean;
    sessionId?: number;
    context?: string;
    error?: string;
}>;
export declare const endSessionSchema: z.ZodObject<{
    sessionId: z.ZodNumber;
    summary: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    sessionId: number;
    summary?: string | undefined;
}, {
    sessionId: number;
    summary?: string | undefined;
}>;
export declare function executeEndSession(input: {
    sessionId: number;
    summary?: string;
}): {
    success: boolean;
    consolidationResult?: ConsolidationResult;
    error?: string;
};
export declare const consolidateSchema: z.ZodObject<{
    force: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
    dryRun: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
    dryRun: boolean;
    force: boolean;
}, {
    dryRun?: boolean | undefined;
    force?: boolean | undefined;
}>;
export declare function executeConsolidate(input: {
    force?: boolean;
    dryRun?: boolean;
}): {
    success: boolean;
    result?: ConsolidationResult;
    preview?: {
        toPromote: number;
        toDelete: number;
        promoteList: string[];
        deleteList: string[];
    };
    error?: string;
};
export declare const statsSchema: z.ZodObject<{
    project: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    project?: string | undefined;
}, {
    project?: string | undefined;
}>;
export declare function executeStats(input: {
    project?: string;
}): {
    success: boolean;
    stats?: ReturnType<typeof getMemoryStats>;
    error?: string;
};
export declare function formatStats(stats: ReturnType<typeof getMemoryStats>): string;
export declare const exportSchema: z.ZodObject<{
    project: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    project?: string | undefined;
}, {
    project?: string | undefined;
}>;
export declare function executeExport(input: {
    project?: string;
}): {
    success: boolean;
    data?: string;
    count?: number;
    error?: string;
};
export declare const importSchema: z.ZodObject<{
    data: z.ZodString;
}, "strip", z.ZodTypeAny, {
    data: string;
}, {
    data: string;
}>;
export declare function executeImport(input: {
    data: string;
}): {
    success: boolean;
    imported?: number;
    error?: string;
};
