import sys
from _typeshed import ReadableBuffer, WriteableBuffer
from typing import Any, Iterator

class error(Exception): ...

def pack(fmt: str | bytes, *v: Any) -> bytes: ...
def pack_into(fmt: str | bytes, buffer: WriteableBuffer, offset: int, *v: Any) -> None: ...
def unpack(__format: str | bytes, __buffer: ReadableBuffer) -> tuple[Any, ...]: ...
def unpack_from(__format: str | bytes, buffer: ReadableBuffer, offset: int = ...) -> tuple[Any, ...]: ...
def iter_unpack(__format: str | bytes, __buffer: ReadableBuffer) -> Iterator[tuple[Any, ...]]: ...
def calcsize(__format: str | bytes) -> int: ...

class Struct:
    if sys.version_info >= (3, 7):
        format: str
    else:
        format: bytes
    size: int
    def __init__(self, format: str | bytes) -> None: ...
    def pack(self, *v: Any) -> bytes: ...
    def pack_into(self, buffer: WriteableBuffer, offset: int, *v: Any) -> None: ...
    def unpack(self, __buffer: ReadableBuffer) -> tuple[Any, ...]: ...
    def unpack_from(self, buffer: ReadableBuffer, offset: int = ...) -> tuple[Any, ...]: ...
    def iter_unpack(self, __buffer: ReadableBuffer) -> Iterator[tuple[Any, ...]]: ...
