"""Pure VM lifecycle orchestration over the core engine seam.

Wave-3 port of mgf-vm's ``mgf.vm.lifecycle`` into the **pure**
``mgf.vm.core``. Every operation here orchestrates a VM lifecycle flow
(power transitions, delete, rename, adopt) by calling an **injected**
:class:`~mgf.vm.core.contracts.HypervisorBackend` (and, where the
contract has no matching method, a narrow injected Protocol declared
beside the operation). No module here imports a concrete engine, the
filesystem, a socket, or a subprocess — the import-linter purity
contract is preserved.

Module layout (the callable orchestration verbs live on the
submodules, mirroring the legacy ``mgf.vm.lifecycle`` shape so the
submodule names are not shadowed by re-exported functions):

* :mod:`mgf.vm.core.lifecycle.power` — ``start`` / ``stop`` / ``pause``
  / ``resume`` / ``reboot``
* :mod:`mgf.vm.core.lifecycle.delete` — ``delete``
* :mod:`mgf.vm.core.lifecycle.rename` — ``rename`` + the injected
  :class:`~mgf.vm.core.lifecycle.rename.DomainRenamer` seam
* :mod:`mgf.vm.core.lifecycle.adopt` — ``adopt`` + the injected
  :class:`~mgf.vm.core.lifecycle.adopt.DomainResolver` /
  :class:`~mgf.vm.core.lifecycle.adopt.DiskExistenceCheck` seams and
  the :class:`~mgf.vm.core.lifecycle.adopt.AdoptReport` value type.

Only the **types** (the narrow injected seams + the adopt report) are
re-exported at the package root for ergonomic adapter authoring — the
verbs stay on their submodules so ``lifecycle.delete``/``rename``/
``adopt`` resolve to the modules, never to a shadowing function.

Deferred (NOT surfaced here, see the per-module docstrings):
``managed_save`` / ``set_autostart`` / ``get_autostart`` (no
:class:`HypervisorBackend` method) and the legacy host-path
disk-enumeration return of ``delete``.
"""

from __future__ import annotations

from mgf.vm.core.lifecycle.adopt import (
    AdoptReport,
    DiskExistenceCheck,
    DomainResolver,
)
from mgf.vm.core.lifecycle.rename import DomainRenamer

__all__ = [
    "AdoptReport",
    "DiskExistenceCheck",
    "DomainRenamer",
    "DomainResolver",
]
