from typing import Any, Optional

TenantIdMismatchError: Any
TenantNotFoundError: Any

def auth_for_tenant(tenant_id: Any, app: Optional[Any] = ...): ...
def get_tenant(tenant_id: Any, app: Optional[Any] = ...): ...
def create_tenant(display_name: Any, allow_password_sign_up: Optional[Any] = ..., enable_email_link_sign_in: Optional[Any] = ..., app: Optional[Any] = ...): ...
def update_tenant(tenant_id: Any, display_name: Optional[Any] = ..., allow_password_sign_up: Optional[Any] = ..., enable_email_link_sign_in: Optional[Any] = ..., app: Optional[Any] = ...): ...
def delete_tenant(tenant_id: Any, app: Optional[Any] = ...) -> None: ...
def list_tenants(page_token: Optional[Any] = ..., max_results: Any = ..., app: Optional[Any] = ...): ...

class Tenant:
    def __init__(self, data: Any) -> None: ...
    @property
    def tenant_id(self): ...
    @property
    def display_name(self): ...
    @property
    def allow_password_sign_up(self): ...
    @property
    def enable_email_link_sign_in(self): ...

class _TenantManagementService:
    TENANT_MGT_URL: str = ...
    app: Any = ...
    client: Any = ...
    tenant_clients: Any = ...
    lock: Any = ...
    def __init__(self, app: Any) -> None: ...
    def auth_for_tenant(self, tenant_id: Any): ...
    def get_tenant(self, tenant_id: Any): ...
    def create_tenant(self, display_name: Any, allow_password_sign_up: Optional[Any] = ..., enable_email_link_sign_in: Optional[Any] = ...): ...
    def update_tenant(self, tenant_id: Any, display_name: Optional[Any] = ..., allow_password_sign_up: Optional[Any] = ..., enable_email_link_sign_in: Optional[Any] = ...): ...
    def delete_tenant(self, tenant_id: Any) -> None: ...
    def list_tenants(self, page_token: Optional[Any] = ..., max_results: Any = ...): ...

class ListTenantsPage:
    def __init__(self, download: Any, page_token: Any, max_results: Any) -> None: ...
    @property
    def tenants(self): ...
    @property
    def next_page_token(self): ...
    @property
    def has_next_page(self): ...
    def get_next_page(self): ...
    def iterate_all(self): ...

class _TenantIterator:
    def __init__(self, current_page: Any) -> None: ...
    def next(self): ...
    def __next__(self): ...
    def __iter__(self) -> Any: ...
