/**
 * 타입 가드 유틸리티
 * 데이터베이스 조회 결과의 타입 안전성을 보장하기 위한 타입 가드 함수들
 */
import type { MemoryType, PrivacyScope, MemoryItem, SqlParam } from '../types/index.js';
/**
 * 데이터베이스에서 조회한 메모리 행 타입
 */
export interface MemoryRow {
    id: string;
    type: string;
    content: string;
    importance: number;
    privacy_scope: string;
    created_at: string;
    updated_at?: string;
    last_accessed?: string;
    pinned?: number | boolean;
    tags?: string | null;
    source?: string | null;
    embedding?: string | null;
}
/**
 * 타입 가드: MemoryRow인지 확인
 *
 * @param value 확인할 값
 * @returns MemoryRow 여부
 */
export declare function isMemoryRow(value: unknown): value is MemoryRow;
/**
 * 타입 가드: MemoryType인지 확인
 *
 * @param value 확인할 값
 * @returns MemoryType 여부
 */
export declare function isMemoryType(value: string): value is MemoryType;
/**
 * 타입 가드: PrivacyScope인지 확인
 *
 * @param value 확인할 값
 * @returns PrivacyScope 여부
 */
export declare function isPrivacyScope(value: string): value is PrivacyScope;
/**
 * MemoryRow를 MemoryItem으로 변환
 * 타입 안전성을 보장하며 변환합니다.
 *
 * @param row 데이터베이스 행
 * @returns MemoryItem 또는 null (타입 검증 실패 시)
 */
export declare function convertMemoryRowToItem(row: MemoryRow): MemoryItem | null;
/**
 * 관계 행 타입
 */
export interface RelationRow {
    id: number;
    source_id: string;
    target_id: string;
    relation_type: string;
    confidence: number;
    created_at: string;
    updated_at: string;
    metadata: string | null;
}
/**
 * 타입 가드: RelationRow인지 확인
 *
 * @param value 확인할 값
 * @returns RelationRow 여부
 */
export declare function isRelationRow(value: unknown): value is RelationRow;
/**
 * 기존 관계 행 타입
 */
export interface ExistingRelationRow {
    id: number;
    confidence: number;
    metadata: string | null;
}
/**
 * 타입 가드: ExistingRelationRow인지 확인
 *
 * @param value 확인할 값
 * @returns ExistingRelationRow 여부
 */
export declare function isExistingRelationRow(value: unknown): value is ExistingRelationRow;
/**
 * 메타데이터 행 타입
 */
export interface MetadataRow {
    metadata: string | null;
}
/**
 * 타입 가드: MetadataRow인지 확인
 *
 * @param value 확인할 값
 * @returns MetadataRow 여부
 */
export declare function isMetadataRow(value: unknown): value is MetadataRow;
/**
 * 타입 가드: SqlParam인지 확인
 * SQLite에서 지원하는 파라미터 타입인지 검증합니다.
 *
 * @param value 확인할 값
 * @returns SqlParam 여부
 */
export declare function isSqlParam(value: unknown): value is SqlParam;
//# sourceMappingURL=type-guards.d.ts.map