# This file is automatically generated by pyo3_stub_gen
# ruff: noqa: E501, F401, F403, F405

import builtins
import typing
__all__ = [
    "MltFeature",
    "MltLayer",
    "decode_mlt",
    "decode_mlt_to_geojson",
    "list_layers",
]

@typing.final
class MltFeature:
    r"""
    A decoded MLT feature with geometry, id, and properties.
    """
    @property
    def id(self) -> typing.Optional[builtins.int]: ...
    @property
    def geometry_type(self) -> builtins.str: ...
    @property
    def wkb(self) -> bytes: ...
    @property
    def properties(self) -> dict: ...
    def __repr__(self) -> builtins.str: ...

@typing.final
class MltLayer:
    r"""
    A decoded MLT layer containing features.
    """
    @property
    def name(self) -> builtins.str: ...
    @property
    def extent(self) -> builtins.int: ...
    @property
    def features(self) -> builtins.list[MltFeature]: ...
    def __repr__(self) -> builtins.str: ...

def decode_mlt(data: bytes, z: typing.Optional[builtins.int] = None, x: typing.Optional[builtins.int] = None, y: typing.Optional[builtins.int] = None, tms: builtins.bool = True) -> builtins.list[MltLayer]:
    r"""
    Decode an MLT binary blob into a list of `MltLayer` objects.

    If `z`, `x`, `y` are provided, tile-local coordinates are transformed
    to EPSG:3857 (Web Mercator) meters. Without them, raw tile coordinates
    are preserved.

    `tms`: when True (the default), treat `y` as TMS convention (y=0 at south,
    used by OpenMapTiles / MBTiles). Set to False for XYZ / slippy-map tiles
    (y=0 at north, e.g. OSM raster tiles).
    """

def decode_mlt_to_geojson(data: bytes) -> builtins.str:
    r"""
    Decode an MLT binary blob and return GeoJSON as a string.
    """

def list_layers(data: bytes) -> builtins.list[builtins.str]:
    r"""
    Return a list of layer names without fully decoding.
    """
