import type React from 'react'; import { type ParsedSageMemoryLine } from './utils.js'; /** * Compact magenta-bordered panel rendering SAGE memory-injection lines * appended to a tool result. Renders nothing when `sageLines` is empty. * * Layout: * * โ”Œ ๐Ÿง  SAGE MEMORY INJECTED ยท N memories โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” * โ”‚ [kind][importance] โ”‚ * โ”‚ text body (wrapped to panel width) โ”‚ * โ”‚ id: mem_โ€ฆ anchor: pkg/path relation: about_file โ”‚ * โ”‚ tags: t1, t2, t3 โ”‚ * โ”‚ [next memory โ€ฆ] โ”‚ * โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ * * Each memory is parsed by `parseSageMemoryLine` and rendered as key/value * rows instead of the raw `[kind] text (anchor) [โ€ฆ]` * blob. Lines that fail to parse fall back to the literal text so a future * SAGE format change cannot silently drop data. */ export declare function SageMemoryBlock({ sageLines, toolName, stats, compact, }: { sageLines?: string[] | undefined; toolName: string; stats?: string | undefined; /** * Compact (opt-in): one magenta chip with count + first preview. * Full (default): bordered panel with every memory row. The bordered form * is the canonical SAGE surface and is asserted by every render test in * `tests/glob-sage-render.test.tsx` and `tests/sage-memory-block-render.test.tsx`. */ compact?: boolean | undefined; }): React.ReactElement | null; /** One parsed memory, rendered as a structured key/value row block. */ export declare function SageMemoryRow({ parsed, index, }: { parsed: ParsedSageMemoryLine; index: number; }): React.ReactElement; /** Compact key/value row used inside `SageMemoryRow`. */ export declare function SageKv({ label, value }: { label: string; value: string; }): React.ReactElement; //# sourceMappingURL=sage-memory-block.d.ts.map