from __future__ import annotations

from typing import Any

import pycbf

class ImageBool:
    def __init__(self, *args, **kwargs) -> None: ...
    def append(self, *args, **kwargs) -> Any: ...
    def empty(dxtbx) -> Any: ...
    def n_tiles(dxtbx) -> Any: ...
    def tile(dxtbx, unsignedlong) -> Any: ...
    def tile_names(dxtbx) -> Any: ...
    def __getitem__(dxtbx, unsignedlong) -> Any: ...
    def __getstate__(dxtbx) -> Any: ...
    def __iter__(boost) -> Any: ...
    def __len__(dxtbx) -> Any: ...
    def __reduce__(self) -> Any: ...
    def __setstate__(dxtbx, boost) -> Any: ...

class ImageBuffer:
    def __init__(self, *args, **kwargs) -> None: ...
    def as_double(dxtbx) -> Any: ...
    def as_float(dxtbx) -> Any: ...
    def as_int(dxtbx) -> Any: ...
    def is_double(dxtbx) -> Any: ...
    def is_empty(dxtbx) -> Any: ...
    def is_float(dxtbx) -> Any: ...
    def is_int(dxtbx) -> Any: ...
    def __reduce__(self) -> Any: ...

class ImageDouble:
    def __init__(self, *args, **kwargs) -> None: ...
    def append(self, *args, **kwargs) -> Any: ...
    def empty(dxtbx) -> Any: ...
    def n_tiles(dxtbx) -> Any: ...
    def tile(dxtbx, unsignedlong) -> Any: ...
    def tile_names(dxtbx) -> Any: ...
    def __getitem__(dxtbx, unsignedlong) -> Any: ...
    def __getstate__(dxtbx) -> Any: ...
    def __iter__(boost) -> Any: ...
    def __len__(dxtbx) -> Any: ...
    def __reduce__(self) -> Any: ...
    def __setstate__(dxtbx, boost) -> Any: ...

class ImageInt:
    def __init__(self, *args, **kwargs) -> None: ...
    def append(self, *args, **kwargs) -> Any: ...
    def empty(dxtbx) -> Any: ...
    def n_tiles(dxtbx) -> Any: ...
    def tile(dxtbx, unsignedlong) -> Any: ...
    def tile_names(dxtbx) -> Any: ...
    def __getitem__(dxtbx, unsignedlong) -> Any: ...
    def __getstate__(dxtbx) -> Any: ...
    def __iter__(boost) -> Any: ...
    def __len__(dxtbx) -> Any: ...
    def __reduce__(self) -> Any: ...
    def __setstate__(dxtbx, boost) -> Any: ...

class ImageTileBool:
    def __init__(self, *args, **kwargs) -> None: ...
    def data(dxtbx) -> Any: ...
    def empty(dxtbx) -> Any: ...
    def name(dxtbx) -> Any: ...
    def __getinitargs__(dxtbx) -> Any: ...
    def __reduce__(self) -> Any: ...

class ImageTileDouble:
    def __init__(self, *args, **kwargs) -> None: ...
    def data(dxtbx) -> Any: ...
    def empty(dxtbx) -> Any: ...
    def name(dxtbx) -> Any: ...
    def __getinitargs__(dxtbx) -> Any: ...
    def __reduce__(self) -> Any: ...

class ImageTileInt:
    def __init__(self, *args, **kwargs) -> None: ...
    def data(dxtbx) -> Any: ...
    def empty(dxtbx) -> Any: ...
    def name(dxtbx) -> Any: ...
    def __getinitargs__(dxtbx) -> Any: ...
    def __reduce__(self) -> Any: ...

def cbf_read_buffer(
    handle: pycbf.cbf_handle_struct, buffer: bytes, flags: int
) -> None: ...
