from _typeshed import Self from typing import Any, Callable, Iterable, Sequence, Tuple, Type from typing_extensions import Literal from .Image import Image _FilterArgs = Tuple[Sequence[int], int, int, Sequence[int]] # filter image parameters below are the C images, i.e. Image().im. class Filter: ... class MultibandFilter(Filter): ... class BuiltinFilter(MultibandFilter): def filter(self, image) -> Image: ... class Kernel(BuiltinFilter): name: str filterargs: _FilterArgs def __init__(self, size: Sequence[int], kernel: Sequence[int], scale: Any | None = ..., offset: int = ...) -> None: ... class RankFilter(Filter): name: str size: int rank: int def __init__(self, size: int, rank: int) -> None: ... def filter(self, image) -> Image: ... class MedianFilter(RankFilter): name: str size: int rank: int def __init__(self, size: int = ...) -> None: ... class MinFilter(RankFilter): name: str size: int rank: int def __init__(self, size: int = ...) -> None: ... class MaxFilter(RankFilter): name: str size: int rank: int def __init__(self, size: int = ...) -> None: ... class ModeFilter(Filter): name: str size: int def __init__(self, size: int = ...) -> None: ... def filter(self, image) -> Image: ... class GaussianBlur(MultibandFilter): name: str radius: float def __init__(self, radius: float = ...) -> None: ... def filter(self, image) -> Image: ... class BoxBlur(MultibandFilter): name: str radius: float def __init__(self, radius: float) -> None: ... def filter(self, image) -> Image: ... class UnsharpMask(MultibandFilter): name: str radius: float percent: int threshold: int def __init__(self, radius: float = ..., percent: int = ..., threshold: int = ...) -> None: ... def filter(self, image) -> Image: ... class BLUR(BuiltinFilter): name: str filterargs: _FilterArgs class CONTOUR(BuiltinFilter): name: str filterargs: _FilterArgs class DETAIL(BuiltinFilter): name: str filterargs: _FilterArgs class EDGE_ENHANCE(BuiltinFilter): name: str filterargs: _FilterArgs class EDGE_ENHANCE_MORE(BuiltinFilter): name: str filterargs: _FilterArgs class EMBOSS(BuiltinFilter): name: str filterargs: _FilterArgs class FIND_EDGES(BuiltinFilter): name: str filterargs: _FilterArgs class SHARPEN(BuiltinFilter): name: str filterargs: _FilterArgs class SMOOTH(BuiltinFilter): name: str filterargs: _FilterArgs class SMOOTH_MORE(BuiltinFilter): name: str filterargs: _FilterArgs class Color3DLUT(MultibandFilter): name: str size: list[int] channels: int mode: str | None table: Any def __init__( self, size: int | Iterable[int], table, channels: int = ..., target_mode: str | None = ..., **kwargs ) -> None: ... @classmethod def generate( cls: Type[Self], size: int | tuple[int, int, int], callback: Callable[[float, float, float], Iterable[float]], channels: int = ..., target_mode: str | None = ..., ) -> Self: ... def transform( self: Self, callback: Callable[..., Iterable[float]], with_normals: bool = ..., channels: Literal[3, 4] | None = ..., target_mode: Any | None = ..., ) -> Self: ... def filter(self, image) -> Image: ...