
from typing import List, Optional, Iterable, Any, Callable

from django.db import models
from .config import AppConfig

class Apps:
	def __init__(self, installed_apps: Optional[List[str]] = ...) -> None: ...
	def populate(self, installed_apps: Optional[Iterable[str]] = ...): ...
	def check_apps_ready(self): ...
	def check_models_ready(self): ...
	def get_app_configs(self) -> Iterable[AppConfig]: ...
	def get_app_config(self, app_label: str) -> AppConfig: ...
	def get_models(self, include_auto_created: bool = ..., include_swapped:bool = ...) -> List[models.Model]: ...
	def get_model(self, app_label: str, model_name: Optional[str] = ...) -> models.Model: ...
	def register_model(self, app_label: str, model: models.Model): ...
	def is_installed(self, app_name: str) -> bool: ...
	def get_containing_app_config(self, object_name: str) -> Optional[AppConfig]: ...
	def get_registered_model(self, app_label: str, model_name: str) -> models.Model: ...
	def get_swappable_settings_name(self, to_string: str) -> Optional[str]: ...
	def set_available_apps(self, available: Iterable[str]): ...
	def unset_available_apps(self): ...
	def set_installed_apps(self, installed: Iterable[str]): ...
	def unset_installed_apps(self): ...
	def clear_cache(self): ...
	def lazy_model_operator(self, function: Callable[..., Any]): ...
	def do_pending_operations(self, model: models.Model): ...

apps = ... # type: Apps