"""Shared services module."""

from src.services.shared.correlation import CorrelationIdMiddleware, get_correlation_id
from src.services.shared.file_service import FileEntry, FileService
from src.services.shared.notification_service import NotificationService
from src.services.shared.permission_fixer import (
    PermissionFixError,
    apply_mount_permissions,
    apply_ssh_permissions,
    check_root_user_available,
)
from src.services.shared.readiness_probe import execute_probe
from src.services.shared.ssh_keys import (
    cleanup_ssh_key_files,
    prepare_ssh_key_files,
    write_ssh_config,
)
from src.services.shared.tunnel import (
    check_tunnel_health,
    recreate_tunnel,
    start_tunnel,
    stop_tunnel,
)
from src.services.shared.workspace_manager import (
    SyncResult,
    WorkspaceHasInstancesError,
    WorkspaceManager,
)

__all__ = [
    "CorrelationIdMiddleware",
    "FileEntry",
    "FileService",
    "NotificationService",
    "PermissionFixError",
    "SyncResult",
    "WorkspaceHasInstancesError",
    "WorkspaceManager",
    "apply_mount_permissions",
    "apply_ssh_permissions",
    "check_root_user_available",
    "check_tunnel_health",
    "cleanup_ssh_key_files",
    "execute_probe",
    "get_correlation_id",
    "prepare_ssh_key_files",
    "recreate_tunnel",
    "start_tunnel",
    "stop_tunnel",
    "write_ssh_config",
]
