/**
 * Reflection Notes 병합 및 배열 크기 제한 유틸리티
 *
 * reflection_notes 필드의 병합 로직과 크기 제한을 처리하는 공통 유틸리티 함수를 제공합니다.
 * remember Tool과 Reflexion Worker에서 공통으로 사용됩니다.
 */
import { type ReflectionNote } from './reflection-notes-schema.js';
/**
 * 병합 결과 타입
 */
export interface MergeResult {
    merged: ReflectionNote[];
    removedCount: number;
    warnings: string[];
}
/**
 * 기존 reflection_notes 타입
 */
export type ExistingReflectionNotes = {
    type: 'null';
    value: null;
} | {
    type: 'object';
    value: ReflectionNote;
} | {
    type: 'array';
    value: ReflectionNote[];
};
/**
 * 새로 추가할 reflection_notes 타입
 */
export type NewReflectionNotes = string | unknown | unknown[];
/**
 * reflection_notes 병합 및 배열 크기 제한
 *
 * 병합 로직:
 * - NULL → 새로 저장
 * - 단일 객체 → 배열 변환 후 추가
 * - 배열 → 배열에 추가
 *
 * 크기 제한:
 * - 배열 크기: 최대 100개, 초과 시 FIFO로 가장 오래된 항목 제거
 * - 단일 객체: 최대 10KB, 초과 시 에러 반환
 * - 전체 필드: 최대 1MB, 초과 시 자동 정리 (가장 오래된 항목부터 제거)
 *
 * @param existing - 기존 reflection_notes (조회 결과)
 * @param newNotes - 새로 추가할 reflection_notes (문자열, 객체, 또는 배열)
 * @returns 병합 결과
 * @throws Error - 단일 객체 크기 초과 시
 */
export declare function mergeReflectionNotes(existing: ExistingReflectionNotes, newNotes: NewReflectionNotes): MergeResult;
/**
 * 병합된 reflection_notes를 JSON 문자열로 변환
 *
 * @param merged - 병합된 배열
 * @returns JSON 문자열
 */
export declare function serializeReflectionNotes(merged: ReflectionNote[]): string;
//# sourceMappingURL=reflection-notes-merge.d.ts.map