/**
 * `forget` MCP tool — delete a memory by id with user-authored immunity.
 *
 * G.3 architectural exception (read-only invariant): destruction must remain user-controllable.
 * Post retire-Rust write-path cutover (T-RETIRE-RUST-CUTOVER) this routes through the configured
 * `RagBackend.deleteLesson` (like `recall`/`memorize`), not the engine directly — so engine-present
 * users hit the engine and no-engine users hit libSQL, the same seam.
 *
 * The user-authored eviction-immunity invariant (`feedback_user_authored_lessons_immune`) is
 * enforced by the backend: `deleteLesson` throws `UserAuthoredImmunityError` for a `user`-authored
 * lesson unless `force` is set (libSQL checks the row's author; loop-engine maps the engine's
 * USER_MEMORY_IMMUNE/-32003). A not-found id returns `{ deleted: false }`, which this handler maps
 * to a typed `MemoryNotFoundError` (mirrors the old memoryGet existence pre-check). Explicit user
 * deletion is allowed (with force); automatic deletion is never wired here (the no-auto-delete
 * invariant).
 *
 * Imports from: zod, ../../rag/types.js.
 * Imported by: mcp/server.ts (handler map).
 */
import { z } from 'zod';
import type { RagBackend } from '../../rag/types.js';
export { UserAuthoredImmunityError } from '../../rag/types.js';
export declare const ForgetSchema: z.ZodObject<{
    id: z.ZodString;
    force: z.ZodDefault<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    id: string;
    force: boolean;
}, {
    id: string;
    force?: boolean | undefined;
}>;
export type ForgetArgs = z.infer<typeof ForgetSchema>;
export interface ForgetOutput {
    deleted: true;
    id: string;
    forced: boolean;
}
/** Thrown when `forget` targets an id that does not exist (→ INVALID_PARAMS to the MCP caller). */
export declare class MemoryNotFoundError extends Error {
    readonly id: string;
    constructor(id: string);
}
export declare function handleForget(args: ForgetArgs, backend: RagBackend): Promise<ForgetOutput>;
//# sourceMappingURL=forget.d.ts.map