"""Type stubs for poetry.console.commands.command"""

from abc import ABCMeta
from typing import Any, Optional

from cleo.io.io import IO
from poetry.poetry import Poetry
from poetry.utils.env import Env

class Command(metaclass=ABCMeta):
    """Base command protocol."""

    poetry: Poetry
    io: IO
    env: Env

    def __init__(self) -> None: ...
    def handle(self) -> int: ...
    def option(self, name: str, help: str = "", is_array: bool = False, **kwargs: Any) -> Any: ...
    def argument(self, name: str, help: str = "", is_array: bool = False, **kwargs: Any) -> Any: ...
    def set_poetry(self, poetry: Poetry) -> None: ...
    def set_installer(self, installer: Any) -> None: ...
    def set_env(self, env: Env) -> None: ...
    def set_manager(self, manager: Any) -> None: ...
    def get_poetry(self) -> Poetry: ...
    def get_env(self) -> Optional[Env]: ...
    def get_installer(self) -> Any: ...
    def get_manager(self) -> Any: ...
