from typing import Union, Optional

def between(bin: Optional[str], min: int, max: int) -> tuple: ...
def equals(bin: Optional[str], val: Union[str, int]) -> tuple: ...

def geo_within_geojson_region(bin: Optional[str], shape: str, index_type = ...) -> tuple: ...
def geo_within_radius(bin: Optional[str], long: float, lat: float, radius_meters: float, index_type = ...) -> tuple: ...
def geo_contains_geojson_point(bin: Optional[str], point: str, index_type = ...) -> tuple: ...
def geo_contains_point(bin: Optional[str], long: float, lat: float, index_type = ...) -> tuple: ...

def contains(bin: Optional[str], index_type, val = Union[str, int]) -> tuple: ...
def range(bin: Optional[str], index_type, min: int, max: int) -> tuple: ...
