/**
 * `memorize` MCP tool — direct write-through to `engine.memoryCreate`.
 *
 * T-CTX-LOOP CTX.0 (2026-05-29) — VERIFY-PROBE GATE:
 *
 *   Every long-term memory write passes through ONE gate: the agent MUST
 *   present a candidate to the user, the user MUST confirm verbatim, and
 *   the agent MUST pass that verbatim confirmation as `confirmed_quote`.
 *   This is the architectural primitive that prevents unverified
 *   understanding from becoming durable — per
 *   [[project-opensquid-communication-thesis]] (verification = the point
 *   where projecting + understanding meet) +
 *   [[project-memory-architecture-dual-surface-sync]] (long-term records
 *   VERIFIED understanding only; consolidating unverified understanding
 *   makes a misunderstanding durable = the worst drift class).
 *
 *   Two new required fields:
 *     - `verified: literal(true)` — must be the literal value `true`;
 *       any other value (false, undefined) trips Zod rejection with the
 *       schema's describe() string surfaced as the remedy.
 *     - `confirmed_quote: string.min(1)` — the user's verbatim reply
 *       confirming the save. Appended to the persisted content body as
 *       a verification trailer so the accountability quote rides forward
 *       in the long-term store + is visible on recall.
 *
 *   Bypass surfaces (deliberately out of CTX.0 scope): direct CLI
 *   `engine.memoryCreate` calls in setup/cli/memory.ts and
 *   setup/migrate/auto_memory_importer.ts — those are user-initiated
 *   bulk paths that don't go through the agent-side verify cycle.
 *
 * G.3 architectural exception (T.1.H read-only invariant): user-explicit
 * memories are SEPARATE from agent-discovered patterns. The wedge gate
 * protects agent learning, not user-explicit policy. `authored_by: 'user'`
 * (default) marks the row eviction-immune so subsequent rule-pipeline
 * activity cannot auto-evict it (see `feedback_user_authored_lessons_immune`).
 *
 * No agent-loop logic here — opensquid just persists what the harness sends.
 * Engine types are imported directly so any RPC param shape change fails
 * typecheck in this file (drift detection per G.3 risk callout).
 *
 * Imports from: ../../engine/client.js, ../../engine/types.js, zod.
 * Imported by: mcp/server.ts (handler map).
 */
import { z } from 'zod';
import type { RagBackend } from '../../rag/types.js';
export declare const MemorizeSchema: z.ZodObject<{
    description: z.ZodString;
    content: z.ZodString;
    scope: z.ZodDefault<z.ZodEnum<["user", "project", "team", "global"]>>;
    authored_by: z.ZodDefault<z.ZodString>;
    origin_label: z.ZodDefault<z.ZodEnum<["explicit", "auto", "imported"]>>;
    verified: z.ZodLiteral<true>;
    confirmed_quote: z.ZodString;
}, "strip", z.ZodTypeAny, {
    description: string;
    scope: "user" | "project" | "team" | "global";
    content: string;
    authored_by: string;
    origin_label: "explicit" | "auto" | "imported";
    verified: true;
    confirmed_quote: string;
}, {
    description: string;
    content: string;
    verified: true;
    confirmed_quote: string;
    scope?: "user" | "project" | "team" | "global" | undefined;
    authored_by?: string | undefined;
    origin_label?: "explicit" | "auto" | "imported" | undefined;
}>;
export type MemorizeArgs = z.infer<typeof MemorizeSchema>;
export interface MemorizeOutput {
    id: string;
    authored_by: string;
    scope: 'user' | 'project' | 'team' | 'global';
    created_at: string;
}
export declare function handleMemorize(args: MemorizeArgs, backend: RagBackend): Promise<MemorizeOutput>;
//# sourceMappingURL=memorize.d.ts.map