import modal._clustered_functions
import modal.client
import typing
import typing_extensions

def stop_fetching_inputs(): ...
def get_local_input_concurrency(): ...
def set_local_input_concurrency(concurrency: int): ...
def clustered(size: int, broadcast: bool = True): ...
def get_cluster_info() -> modal._clustered_functions.ClusterInfo: ...

class AppInfo:
    app_id: str
    name: str
    containers: int

    def __init__(self, app_id: str, name: str, containers: int) -> None: ...
    def __repr__(self): ...
    def __eq__(self, other): ...

class __list_deployed_apps_spec(typing_extensions.Protocol):
    def __call__(
        self, environment_name: str = "", client: typing.Optional[modal.client.Client] = None
    ) -> list[AppInfo]: ...
    async def aio(
        self, environment_name: str = "", client: typing.Optional[modal.client.Client] = None
    ) -> list[AppInfo]: ...

list_deployed_apps: __list_deployed_apps_spec
