"""Internal signals emitted by the M&EL tracking services.

Reports and dashboards can listen to these without depending on upstream
signal shapes — M&EL is the single consumer of upstream events and the single
producer of these abstracted ones.
"""
from __future__ import annotations

import django.dispatch

mel_data_point_recorded = django.dispatch.Signal()
mel_indicator_threshold_crossed = django.dispatch.Signal()
mel_activity_delayed = django.dispatch.Signal()
# G17 — emitted when every activity under an OUTPUT row reaches a terminal
# state, so the output owner can close out the deliverable. Visibility only —
# the deliverable's status is never mutated automatically.
mel_output_ready_to_close = django.dispatch.Signal()
