/**
 * Unpin Tool - 기억 고정 해제 도구
 * 고정된 기억의 고정을 해제하여 일반 관리 대상으로 변경
 */
import { BaseTool } from '../../../tools/base-tool.js';
import type { ToolContext, ToolResult } from '../../../tools/types.js';
type UnpinnableMemoryRow = {
    id: string;
    content: string | null;
    type: string | null;
    importance: number | null;
    created_at: string;
    last_accessed: string | null;
};
type RecommendedUnpinRow = UnpinnableMemoryRow & {
    days_old: number;
};
type UnpinStatsAggregateRow = {
    total_memories: number;
    pinned_count: number;
    unpinned_count: number;
    avg_importance: number | null;
};
type RecentUnpinFeedbackRow = {
    memory_id: string;
    event: string;
    created_at: string;
};
/** SQLite 집계 행이 없을 때는 통계 키 없이 `recent_unpins`만 반환될 수 있음 */
type UnpinStatsResult = Partial<UnpinStatsAggregateRow> & {
    recent_unpins: RecentUnpinFeedbackRow[];
};
export declare class UnpinTool extends BaseTool {
    constructor();
    handle(params: unknown, context: ToolContext): Promise<ToolResult>;
    /**
     * 단일 기억 고정 해제
     */
    private handleSingleUnpin;
    /**
     * 배치 고정 해제 처리
     */
    private handleBatchUnpin;
    /**
     * 기억 조회
     */
    private getMemoryById;
    /**
     * 여러 기억 일괄 조회 (N+1 완화)
     */
    private getMemoriesByIds;
    /**
     * 고정 해제 로그 기록
     */
    private logUnpinAction;
    /**
     * 데이터베이스 락 처리
     */
    private handleDatabaseLock;
    /**
     * 고정 해제 가능한 기억 목록 조회
     */
    getUnpinnableMemories(context: ToolContext, limit?: number): Promise<UnpinnableMemoryRow[]>;
    /**
     * 고정 해제 통계 조회
     */
    getUnpinStats(context: ToolContext): Promise<UnpinStatsResult>;
    /**
     * 고정 해제 권장 기억 조회
     */
    getRecommendedUnpins(context: ToolContext, limit?: number): Promise<RecommendedUnpinRow[]>;
}
export {};
//# sourceMappingURL=unpin-tool.d.ts.map