"""Pre-flight checks for volumes and syncs."""

from .checks import (
    check_all_syncs,
    check_sync,
    check_volume,
)
from .endpoint_checks import (
    observe_destination_endpoint,
    observe_source_endpoint,
)
from .status import (
    BtrfsStagingSubvolumeDiagnostics,
    DestinationEndpointDiagnostics,
    DestinationEndpointError,
    DestinationEndpointStatus,
    HostToolCapabilities,
    INACTIVE_DST_ENDPOINT_ERRORS,
    INACTIVE_SSH_ERRORS,
    INACTIVE_SRC_ENDPOINT_ERRORS,
    INACTIVE_SYNC_ERRORS,
    INACTIVE_VOLUME_ERRORS,
    LatestSymlinkState,
    MountCapabilities,
    MountToolCapabilities,
    PreflightResult,
    SnapshotDirsDiagnostics,
    SourceEndpointDiagnostics,
    SourceEndpointError,
    SourceEndpointStatus,
    SshEndpointDiagnostics,
    SshEndpointError,
    SshEndpointStatus,
    SshEndpointToolNeeds,
    SyncError,
    SyncStatus,
    VolumeCapabilities,
    VolumeDiagnostics,
    VolumeError,
    VolumeStatus,
)
from .volume_checks import (
    check_mount_status,
    check_volume_capabilities,
    observe_ssh_endpoint,
    observe_volume,
)

__all__ = [
    "BtrfsStagingSubvolumeDiagnostics",
    "DestinationEndpointDiagnostics",
    "DestinationEndpointError",
    "DestinationEndpointStatus",
    "HostToolCapabilities",
    "INACTIVE_DST_ENDPOINT_ERRORS",
    "INACTIVE_SSH_ERRORS",
    "INACTIVE_SRC_ENDPOINT_ERRORS",
    "INACTIVE_SYNC_ERRORS",
    "INACTIVE_VOLUME_ERRORS",
    "LatestSymlinkState",
    "MountCapabilities",
    "MountToolCapabilities",
    "PreflightResult",
    "SnapshotDirsDiagnostics",
    "SourceEndpointDiagnostics",
    "SourceEndpointError",
    "SourceEndpointStatus",
    "SshEndpointDiagnostics",
    "SshEndpointError",
    "SshEndpointStatus",
    "SshEndpointToolNeeds",
    "SyncError",
    "SyncStatus",
    "VolumeCapabilities",
    "VolumeDiagnostics",
    "VolumeError",
    "VolumeStatus",
    "check_all_syncs",
    "check_mount_status",
    "check_sync",
    "check_volume",
    "check_volume_capabilities",
    "observe_destination_endpoint",
    "observe_source_endpoint",
    "observe_ssh_endpoint",
    "observe_volume",
]
