"""Type stubs for the internal Rust extension module."""

class AXML:
    """Internal AXML class from Rust extension."""

    def __init__(self) -> None: ...
    @classmethod
    def from_axml(cls, data: bytes) -> "AXML": ...
    def pack(self) -> bytes: ...
    def to_xml(self) -> str: ...
    def from_xml(self, xml: str) -> None: ...
    def string_count(self) -> int: ...
    def get_string(self, idx: int) -> str: ...
    def to_proto_bytes(self) -> bytes: ...
    @classmethod
    def from_proto_bytes(cls, data: bytes) -> "AXML": ...
    def to_proto_text(self) -> str: ...

class ARSC:
    """Internal ARSC class from Rust extension."""

    @classmethod
    def from_axml(cls, data: bytes) -> "ARSC": ...
    def list_packages(self, language: str | None = None) -> str: ...
    def package_count(self) -> int: ...
    def to_proto_bytes(self) -> bytes: ...
    @classmethod
    def from_proto_bytes(cls, data: bytes) -> "ARSC": ...
    def to_proto_text(self) -> str: ...

def compute_string_block_proto(data: bytes, is_utf8: bool) -> bytes: ...
def compute_string_blocks_proto(data: bytes, recursive: bool) -> bytes: ...
def compute_resource_map_proto(data: bytes) -> bytes: ...
def compute_xml_element_proto(data: bytes) -> bytes: ...
def compute_arsc_res_table_config_proto(data: bytes) -> bytes: ...
def compute_arsc_res_type_proto(data: bytes, recursive: bool) -> bytes: ...
def compute_arsc_res_table_package_proto(data: bytes, recursive: bool) -> bytes: ...
def compute_axml_proto_bytes(data: bytes, recursive: bool) -> bytes: ...
def compute_arsc_proto_bytes(data: bytes, recursive: bool) -> bytes: ...
