import { ZettelkastenManager } from 'modular-mcp-memory/core';
export declare const latestContentFetched: Set<string>;
export declare const memoryAccessCounter: Map<string, number>;
/**
 * 获取环境变量 MEMORY_REPEAT_ACCESS_RESTRICTION 的值
 * 如果未设置则返回默认值 3
 */
export declare function getMemoryRepeatAccessRestriction(): number;
/**
 * 检查是否允许读取某个记忆片段
 * @param fragmentName 记忆片段名称
 * @param conversationId 对话ID，如果不提供则使用全局访问控制
 * @returns 如果允许读取返回 true，否则返回 false
 */
export declare function canAccessMemory(fragmentName: string, conversationId?: string): boolean;
/**
 * 增加记忆片段的读取计数
 * @param fragmentName 记忆片段名称
 * @param conversationId 对话ID，如果不提供则使用全局计数器
 */
export declare function incrementMemoryAccessCounter(fragmentName: string, conversationId?: string): void;
/**
 * 重置某个记忆片段的读取计数器
 * @param fragmentName 记忆片段名称
 * @param conversationId 对话ID，如果不提供则使用全局计数器
 */
export declare function resetMemoryAccessCounter(fragmentName: string, conversationId?: string): void;
/**
 * 检查片段是否已在对话中被获取过
 * @param fragmentName 记忆片段名称
 * @param conversationId 对话ID，如果不提供则使用全局缓存
 * @returns 如果已获取过返回 true
 */
export declare function hasLatestContent(fragmentName: string, conversationId?: string): boolean;
/**
 * 标记片段为已获取最新内容
 * @param fragmentName 记忆片段名称
 * @param conversationId 对话ID，如果不提供则使用全局缓存
 */
export declare function markLatestContentFetched(fragmentName: string, conversationId?: string): void;
/**
 * 移除片段的已获取标记
 * @param fragmentName 记忆片段名称
 * @param conversationId 对话ID，如果不提供则使用全局缓存
 */
export declare function removeLatestContentFetched(fragmentName: string, conversationId?: string): void;
/**
 * 清理特定对话的所有数据（可选，用于释放内存）
 * @param conversationId 对话ID
 */
export declare function cleanupConversationData(conversationId: string): void;
export declare function extractLinkedCardNames(content: string): string[];
export declare function isEmptyPlaceholder(manager: ZettelkastenManager, content: string): boolean | "";
/**
 * 编辑操作前校验
 * 可编辑的条件为：1.文件不存在 或者 2.为自动生成的空文件 或者 3. 已经读取过，在读取了的列表内
 * @param manager ZettelkastenManager 实例
 * @param fragmentName 记忆片段名称
 * @param conversationId 对话ID，如果不提供则使用全局缓存
 */
export declare function checkLatestContent(manager: ZettelkastenManager, fragmentName: string, conversationId?: string): Promise<void>;
//# sourceMappingURL=utils.d.ts.map