/** 评论触发范围：仅 @bot 的评论触发 / 该文档所有新评论都触发。 */
export type CommentTriggerMode = 'mention-only' | 'all';
export interface DocSubscription {
    /** 解析后的底层文档 token（wiki 已换成 obj_token）。主键。 */
    fileToken: string;
    /** 飞书 file_type（docx 等）—— 调评论 / 订阅 API 都要带。 */
    fileType: string;
    /** 绑定会话的路由锚点：thread-scope=rootMessageId / chat-scope=chatId。 */
    sessionAnchor: string;
    /** 绑定会话的 sessionId。daemon 重启恢复时据此查持久化会话状态判定保留/退订
     *  （不依赖内存 activeSessions，避免误删活跃会话的订阅）。旧订阅可能缺此字段。 */
    sessionId?: string;
    /** 会话 scope —— 重订阅 / 落点路由时要知道。 */
    scope: 'thread' | 'chat';
    /** 会话所在群（回飞书侧卡片、dashboard 展示用）。 */
    chatId: string;
    /** 评论触发范围。dashboard 可改。 */
    commentTriggerMode: CommentTriggerMode;
    /** 文档标题快照（best-effort，用于卡片 / dashboard 展示）。 */
    docTitle?: string;
    /** 发起订阅的用户 open_id。 */
    ownerOpenId?: string;
    createdAt: number;
}
/**
 * 新增 / 覆盖一条订阅（fileToken 主键 → 重订阅覆盖旧绑定 = 1 文档:1 会话）。
 * 返回被覆盖掉的旧订阅（如果该文档此前绑在别的会话上），调用方据此退订旧的 /
 * 提示用户。
 */
export declare function putDocSubscription(dataDir: string, larkAppId: string, sub: DocSubscription): {
    previous?: DocSubscription;
};
/** 取某文档的订阅（评论事件来后据 fileToken 定位会话）。无则 null。 */
export declare function getDocSubscription(dataDir: string, larkAppId: string, fileToken: string): DocSubscription | null;
/** 删一条订阅，返回被删的那条（无则 undefined）。 */
export declare function removeDocSubscription(dataDir: string, larkAppId: string, fileToken: string): DocSubscription | undefined;
/** 列某会话锚点上的所有订阅（/doc list、/close 退订时用）。 */
export declare function listDocSubscriptionsForSession(dataDir: string, larkAppId: string, sessionAnchor: string): DocSubscription[];
/** 列本 app 下全部订阅（daemon 重启恢复 + dashboard 展示）。 */
export declare function listAllDocSubscriptions(dataDir: string, larkAppId: string): DocSubscription[];
/** 改某文档订阅的触发范围（dashboard）。返回是否命中。 */
export declare function setCommentTriggerMode(dataDir: string, larkAppId: string, fileToken: string, mode: CommentTriggerMode): boolean;
//# sourceMappingURL=doc-subs-store.d.ts.map