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

import collections.abc
__all__ = [
    "find_largest_circle",
    "get_polylabel",
]

def find_largest_circle(shell: collections.abc.Sequence[tuple[float, float]], holes: collections.abc.Sequence[collections.abc.Sequence[tuple[float, float]]] = [], precision: float = 0.5) -> tuple[tuple[float, float], float] | None:
    r"""
    Find the centre and radius of the largest inscribed circle.
    
    :param shell: Outer boundary polygon.
    :param holes: List of hole polygons to exclude (default []).
    :param precision: Desired precision (default 0.5).
    :returns: ((x, y), radius) or None for degenerate polygons.
    """

def get_polylabel(shell: collections.abc.Sequence[tuple[float, float]], holes: collections.abc.Sequence[collections.abc.Sequence[tuple[float, float]]] = [], precision: float = 0.5) -> tuple[float, float] | None:
    r"""
    Find the pole of inaccessibility of a polygon (with optional holes).
    
    Uses the Polylabel algorithm (Mapbox): a priority-queue of
    grid cells repeatedly subdivided until the cell radius drops
    below *precision*.
    
    :param shell: Outer boundary polygon.
    :param holes: List of hole polygons to exclude (default []).
    :param precision: Desired precision (default 0.5).
    :returns: (x, y) of the most interior point, or None for
              degenerate polygons.
    :complexity: O(n log n) where n is the number of cells explored.
    """

