from ms_graph_client.exceptions import UnableToFindApplicationError
from .groups import Groups as Groups
from ms_graph_client.graph_api_config import GraphAPIConfig as GraphAPIConfig
from ms_graph_client.graph_api_crud_base import GraphAPICRUDBASE as GraphAPICRUDBASE
from typing import Any

class Applications(GraphAPICRUDBASE):
    _group_crud: Groups
    def __init__(self, config: GraphAPIConfig, group_obj: Groups) -> None: ...
    def get_by_application_name(self, app_name: str) -> Any: ...
    def get_service_principal_by_app_id(self, app_id: str) -> Any: ...
    def exists_by_obj_id(self, id: str) -> bool: ...
    def get_by_object_id(self, id: str) -> Any: ...
    def _stabilize_app_assignment(self, app_sp_id: str, group_id: str, should_be_assigned: bool) -> None: ...
    def assign_group_to_app(
        self, app_name: str, group_id: str, with_stabilization: bool, appRole: str = ...
    ) -> Any: ...
    def unassign_group_to_app(
        self, app_name: str, assigned_to_id: str, group_id: str, with_stabilization: bool
    ) -> None: ...
