from __future__ import annotations

from .callback import (
    Callback,
    EarlyStopping,
    GradientMonitoring,
    LoadCheckpoint,
    LogHyperparameters,
    LogModelTracker,
    LRSchedulerCosineAnnealing,
    LRSchedulerCyclic,
    LRSchedulerStepDecay,
    PlotMetrics,
    PrintMetrics,
    SaveBestCheckpoint,
    SaveCheckpoint,
    WriteMetrics,
)
from .callbackmanager import CallbacksManager
from .writer_registry import get_writer

# Modules to be automatically added to the perceptrain.callbacks namespace
__all__ = [
    "CallbacksManager",
    "Callback",
    "LoadCheckpoint",
    "LogHyperparameters",
    "LogModelTracker",
    "PlotMetrics",
    "PrintMetrics",
    "SaveBestCheckpoint",
    "SaveCheckpoint",
    "WriteMetrics",
    "GradientMonitoring",
    "LRSchedulerStepDecay",
    "LRSchedulerCyclic",
    "LRSchedulerCosineAnnealing",
    "EarlyStopping",
    "get_writer",
]
