massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-pyright / node_modules / pyright / dist / typeshed-fallback / stubs / Pillow / PIL / ImageFilter.pyi
1 from _typeshed import Self
2 from typing import Any, Callable, Iterable, Sequence, Tuple, Type
3 from typing_extensions import Literal
4
5 from .Image import Image
6
7 _FilterArgs = Tuple[Sequence[int], int, int, Sequence[int]]
8
9 # filter image parameters below are the C images, i.e. Image().im.
10
11 class Filter: ...
12 class MultibandFilter(Filter): ...
13
14 class BuiltinFilter(MultibandFilter):
15     def filter(self, image) -> Image: ...
16
17 class Kernel(BuiltinFilter):
18     name: str
19     filterargs: _FilterArgs
20     def __init__(self, size: Sequence[int], kernel: Sequence[int], scale: Any | None = ..., offset: int = ...) -> None: ...
21
22 class RankFilter(Filter):
23     name: str
24     size: int
25     rank: int
26     def __init__(self, size: int, rank: int) -> None: ...
27     def filter(self, image) -> Image: ...
28
29 class MedianFilter(RankFilter):
30     name: str
31     size: int
32     rank: int
33     def __init__(self, size: int = ...) -> None: ...
34
35 class MinFilter(RankFilter):
36     name: str
37     size: int
38     rank: int
39     def __init__(self, size: int = ...) -> None: ...
40
41 class MaxFilter(RankFilter):
42     name: str
43     size: int
44     rank: int
45     def __init__(self, size: int = ...) -> None: ...
46
47 class ModeFilter(Filter):
48     name: str
49     size: int
50     def __init__(self, size: int = ...) -> None: ...
51     def filter(self, image) -> Image: ...
52
53 class GaussianBlur(MultibandFilter):
54     name: str
55     radius: float
56     def __init__(self, radius: float = ...) -> None: ...
57     def filter(self, image) -> Image: ...
58
59 class BoxBlur(MultibandFilter):
60     name: str
61     radius: float
62     def __init__(self, radius: float) -> None: ...
63     def filter(self, image) -> Image: ...
64
65 class UnsharpMask(MultibandFilter):
66     name: str
67     radius: float
68     percent: int
69     threshold: int
70     def __init__(self, radius: float = ..., percent: int = ..., threshold: int = ...) -> None: ...
71     def filter(self, image) -> Image: ...
72
73 class BLUR(BuiltinFilter):
74     name: str
75     filterargs: _FilterArgs
76
77 class CONTOUR(BuiltinFilter):
78     name: str
79     filterargs: _FilterArgs
80
81 class DETAIL(BuiltinFilter):
82     name: str
83     filterargs: _FilterArgs
84
85 class EDGE_ENHANCE(BuiltinFilter):
86     name: str
87     filterargs: _FilterArgs
88
89 class EDGE_ENHANCE_MORE(BuiltinFilter):
90     name: str
91     filterargs: _FilterArgs
92
93 class EMBOSS(BuiltinFilter):
94     name: str
95     filterargs: _FilterArgs
96
97 class FIND_EDGES(BuiltinFilter):
98     name: str
99     filterargs: _FilterArgs
100
101 class SHARPEN(BuiltinFilter):
102     name: str
103     filterargs: _FilterArgs
104
105 class SMOOTH(BuiltinFilter):
106     name: str
107     filterargs: _FilterArgs
108
109 class SMOOTH_MORE(BuiltinFilter):
110     name: str
111     filterargs: _FilterArgs
112
113 class Color3DLUT(MultibandFilter):
114     name: str
115     size: list[int]
116     channels: int
117     mode: str | None
118     table: Any
119     def __init__(
120         self, size: int | Iterable[int], table, channels: int = ..., target_mode: str | None = ..., **kwargs
121     ) -> None: ...
122     @classmethod
123     def generate(
124         cls: Type[Self],
125         size: int | tuple[int, int, int],
126         callback: Callable[[float, float, float], Iterable[float]],
127         channels: int = ...,
128         target_mode: str | None = ...,
129     ) -> Self: ...
130     def transform(
131         self: Self,
132         callback: Callable[..., Iterable[float]],
133         with_normals: bool = ...,
134         channels: Literal[3, 4] | None = ...,
135         target_mode: Any | None = ...,
136     ) -> Self: ...
137     def filter(self, image) -> Image: ...