import rzpipe
from _typeshed import Incomplete
from fwhunt_scan.uefi_protocols import UefiGuid as UefiGuid
from fwhunt_scan.uefi_types import ChildSwSmiHandler as ChildSwSmiHandler, SmiHandler as SmiHandler, SmiKind as SmiKind
from fwhunt_scan.uefi_utils import get_current_insn_index as get_current_insn_index, get_int as get_int, get_xrefs_to_data as get_xrefs_to_data, get_xrefs_to_guids as get_xrefs_to_guids
from typing import Any, Dict, List, Optional

SMI_KINDS: Incomplete

def get_interface_from_bb(insns: List[Dict[str, Any]], code_addr: int) -> Optional[int]: ...
def get_interface_global(insns: List[Dict[str, Any]], code_addr: int) -> Optional[int]: ...
def get_handler(insns: List[Dict[str, Any]], kind: SmiKind) -> Optional[SmiHandler]: ...
def get_handlers(rz: rzpipe.open, code_addr: int, interface: int, kind: SmiKind) -> List[SmiHandler]: ...
def get_smst_bb(insns: List[Dict[str, Any]]) -> Optional[int]: ...
def get_smst_func(rz: rzpipe.open, code_addr: int, interface: int) -> List[int]: ...
def get_smst_list(rz: rzpipe.open) -> List[int]: ...
def find_handler_register_service(insns: List[Dict[str, Any]]) -> Optional[int]: ...
def get_child_sw_smi_handler_bb(rz: rzpipe.open, insns: List[Dict[str, Any]]) -> Optional[ChildSwSmiHandler]: ...
def get_child_sw_smi_handlers(rz: rzpipe.open, smst_list: List[int]) -> List[ChildSwSmiHandler]: ...
def get_smi_handlers(rz: rzpipe.open) -> List[SmiHandler]: ...
