/**
 * Reflection Notes JSON 스키마 검증 유틸리티
 *
 * reflection_notes 필드의 JSON 스키마를 검증하는 유틸리티 함수를 제공합니다.
 * 단일 객체 또는 배열 형식 모두 지원합니다.
 */
import { z } from 'zod';
/**
 * Reflection Note 스키마 정의
 *
 * 필수 필드:
 * - failure_type: 실패 유형 (tool_error | user_feedback | metric_failure)
 * - failure_description: 실패에 대한 상세 설명 (최대 5000자)
 * - timestamp: Reflexion 기록 시각 (ISO 8601 형식)
 *
 * 옵션 필드:
 * - original_task: 원래 수행하려던 작업 (최대 2000자)
 * - lessons_learned: 학습한 교훈 (최대 5000자)
 * - suggested_improvements: 제안하는 개선 방안 (최대 5000자)
 * - phase: 기록 방식 (manual | auto, 기본값: manual)
 */
export declare const ReflectionNoteSchema: z.ZodObject<{
    failure_type: z.ZodEnum<["tool_error", "user_feedback", "metric_failure"]>;
    failure_description: z.ZodString;
    timestamp: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
    original_task: z.ZodOptional<z.ZodString>;
    lessons_learned: z.ZodOptional<z.ZodString>;
    suggested_improvements: z.ZodOptional<z.ZodString>;
    /** Reflexion 등에서 선택적으로 기록 */
    tool_name: z.ZodOptional<z.ZodString>;
    phase: z.ZodDefault<z.ZodEnum<["manual", "auto"]>>;
}, "strip", z.ZodTypeAny, {
    failure_type: "tool_error" | "user_feedback" | "metric_failure";
    phase: "auto" | "manual";
    timestamp: string;
    failure_description: string;
    tool_name?: string | undefined;
    original_task?: string | undefined;
    lessons_learned?: string | undefined;
    suggested_improvements?: string | undefined;
}, {
    failure_type: "tool_error" | "user_feedback" | "metric_failure";
    timestamp: string;
    failure_description: string;
    phase?: "auto" | "manual" | undefined;
    tool_name?: string | undefined;
    original_task?: string | undefined;
    lessons_learned?: string | undefined;
    suggested_improvements?: string | undefined;
}>;
/**
 * Reflection Note 타입 정의
 */
export type ReflectionNote = z.infer<typeof ReflectionNoteSchema>;
/**
 * 검증 결과 타입
 */
export interface ValidationResult {
    isValid: boolean;
    errors?: Array<{
        field: string;
        expected: string;
        actual: any;
        message: string;
    }>;
}
/**
 * 단일 Reflection Note 객체 검증
 *
 * @param data - 검증할 객체
 * @returns 검증 결과
 */
export declare function validateReflectionNote(data: unknown): ValidationResult;
/**
 * 단일 객체 또는 배열 형식 모두 지원하는 검증 함수
 *
 * @param jsonString - 검증할 JSON 문자열
 * @returns 검증 결과
 */
export declare function validateReflectionNotes(jsonString: string): ValidationResult;
/**
 * 검증 결과를 사람이 읽기 쉬운 에러 메시지로 변환
 *
 * @param result - 검증 결과
 * @returns 에러 메시지 문자열
 */
export declare function formatValidationErrors(result: ValidationResult): string;
//# sourceMappingURL=reflection-notes-schema.d.ts.map