from typing import Any, Optional, Type
from types import TracebackType
import numpy as np

class PyBlock:
  def __str__(self) -> str: ...
  def position(self) -> PyBlockPosition: ...
  def state(self) -> Any: ...

class PyBlockPosition:
  def __str__(self) -> str: ...
  def x(self) -> int: ...
  def y(self) -> int: ...
  def z(self) -> int: ...

class PyBlockState:
  def __str__(self) -> str: ...
  def id(self) -> int: ...
  def properties(self) -> Any: ...

class VoxelReader:
  def __enter__(self) -> VoxelReader: ...
  def __exit__(
    self,
    exc_type: Optional[Type[BaseException]],
    exc_val: Optional[BaseException],
    exc_tb: Optional[TracebackType],
  ) -> None: ...
  def __iter__(self) -> Any: ...
  def __next__(self) -> list["PyBlock"]: ...
  def read_full(self) -> Any: ...
  def iter_bulks(self) -> Any: ...
  def to_numpy(self) -> np.ndarray: ...
  def close(self) -> Ten: ...
  def __str__(self) -> str: ...

def open(input: Any, type: Any) -> VoxelReader: ...