from _typeshed import Incomplete
from collections.abc import Iterable
from typing import Any

class DirtyApp:
    workers: Incomplete | None

    def init(self) -> None: ...
    def __call__(
        self, action: str, *args: Any, **kwargs: Any
    ) -> Any: ...  # Arguments and result depend on method name passed to action
    def close(self) -> None: ...

def parse_dirty_app_spec(spec: str) -> tuple[str, int | None]: ...
def load_dirty_app(import_path: str): ...
def load_dirty_apps(import_paths: Iterable[str]) -> dict[str, Incomplete]: ...
def get_app_workers_attribute(import_path: str) -> int | None: ...
