"""InstallerProtocol — abstracts platform-specific installation."""

from __future__ import annotations

from pathlib import Path
from typing import Protocol, runtime_checkable


@runtime_checkable
class InstallerProtocol(Protocol):
    """Abstraction for platform-specific installation paths and actions."""

    def config_dir(self) -> Path: ...
    def data_dir(self) -> Path: ...
    def log_dir(self) -> Path: ...
    def bin_dir(self) -> Path: ...
    async def install(self, profile: str, dry_run: bool = False) -> None: ...
    async def uninstall(self, keep_data: bool = True) -> None: ...
    async def verify(self) -> list[str]: ...
