from __future__ import annotations

import enum

class Encoding(enum.Enum):
    """Endianness of the q IPC message payload."""
    LITTLE_ENDIAN = ...
    BIG_ENDIAN = ...


class Compression(enum.Enum):
    """Compression mode of the q IPC message payload."""
    UNCOMPRESSED = ...
    COMPRESSED = ...
    COMPRESSED_LARGE = ...


class MessageType(enum.Enum):
    """IPC message type tag."""
    ASYNCHRONOUS = ...
    SYNCHRONOUS = ...
    RESPONSE = ...


class MessageHeader:
    """Header information extracted from a q IPC frame."""
    @property
    def encoding(self) -> Encoding:
        """The endianness of the payload."""
        ...
    @property
    def message_type(self) -> MessageType:
        """The message type tag."""
        ...
    @property
    def compression(self) -> Compression:
        """The compression mode."""
        ...
    @property
    def size(self) -> int:
        """The total size of the message frame in bytes."""
        ...

