const activeChatGenerations = new Map();
export function claimChatGeneration(conversationId, abortController = null) {
    if (activeChatGenerations.has(conversationId))
        return null;
    const token = Symbol(conversationId);
    activeChatGenerations.set(conversationId, { token, abortController });
    return () => {
        if (activeChatGenerations.get(conversationId)?.token === token) {
            activeChatGenerations.delete(conversationId);
        }
    };
}
export function hasActiveChatGeneration(conversationId) {
    return activeChatGenerations.has(conversationId);
}
export function cancelActiveChatGeneration(conversationId) {
    const active = activeChatGenerations.get(conversationId);
    if (!active?.abortController)
        return false;
    if (!active.abortController.signal.aborted) {
        active.abortController.abort();
    }
    return true;
}
//# sourceMappingURL=chat-generation-locks.js.map