1import sys
2from _typeshed import FileDescriptorLike
3from array import array
4from typing import Any, Union, overload
5from typing_extensions import Literal
6
7FASYNC: int
8FD_CLOEXEC: int
9DN_ACCESS: int
10DN_ATTRIB: int
11DN_CREATE: int
12DN_DELETE: int
13DN_MODIFY: int
14DN_MULTISHOT: int
15DN_RENAME: int
16F_DUPFD: int
17F_DUPFD_CLOEXEC: int
18F_FULLFSYNC: int
19F_EXLCK: int
20F_GETFD: int
21F_GETFL: int
22F_GETLEASE: int
23F_GETLK: int
24F_GETLK64: int
25F_GETOWN: int
26F_NOCACHE: int
27F_GETSIG: int
28F_NOTIFY: int
29F_RDLCK: int
30F_SETFD: int
31F_SETFL: int
32F_SETLEASE: int
33F_SETLK: int
34F_SETLK64: int
35F_SETLKW: int
36F_SETLKW64: int
37if sys.version_info >= (3, 9) and sys.platform == "linux":
38    F_OFD_GETLK: int
39    F_OFD_SETLK: int
40    F_OFD_SETLKW: int
41F_SETOWN: int
42F_SETSIG: int
43F_SHLCK: int
44F_UNLCK: int
45F_WRLCK: int
46I_ATMARK: int
47I_CANPUT: int
48I_CKBAND: int
49I_FDINSERT: int
50I_FIND: int
51I_FLUSH: int
52I_FLUSHBAND: int
53I_GETBAND: int
54I_GETCLTIME: int
55I_GETSIG: int
56I_GRDOPT: int
57I_GWROPT: int
58I_LINK: int
59I_LIST: int
60I_LOOK: int
61I_NREAD: int
62I_PEEK: int
63I_PLINK: int
64I_POP: int
65I_PUNLINK: int
66I_PUSH: int
67I_RECVFD: int
68I_SENDFD: int
69I_SETCLTIME: int
70I_SETSIG: int
71I_SRDOPT: int
72I_STR: int
73I_SWROPT: int
74I_UNLINK: int
75LOCK_EX: int
76LOCK_MAND: int
77LOCK_NB: int
78LOCK_READ: int
79LOCK_RW: int
80LOCK_SH: int
81LOCK_UN: int
82LOCK_WRITE: int
83
84@overload
85def fcntl(__fd: FileDescriptorLike, __cmd: int, __arg: int = ...) -> int: ...
86@overload
87def fcntl(__fd: FileDescriptorLike, __cmd: int, __arg: bytes) -> bytes: ...
88
89_ReadOnlyBuffer = bytes
90_WritableBuffer = Union[bytearray, memoryview, array[Any]]
91
92@overload
93def ioctl(__fd: FileDescriptorLike, __request: int, __arg: int = ..., __mutate_flag: bool = ...) -> int: ...
94@overload
95def ioctl(__fd: FileDescriptorLike, __request: int, __arg: _WritableBuffer, __mutate_flag: Literal[True] = ...) -> int: ...
96@overload
97def ioctl(__fd: FileDescriptorLike, __request: int, __arg: _WritableBuffer, __mutate_flag: Literal[False]) -> bytes: ...
98@overload
99def ioctl(__fd: FileDescriptorLike, __request: int, __arg: _ReadOnlyBuffer, __mutate_flag: bool = ...) -> bytes: ...
100def flock(__fd: FileDescriptorLike, __operation: int) -> None: ...
101def lockf(__fd: FileDescriptorLike, __cmd: int, __len: int = ..., __start: int = ..., __whence: int = ...) -> Any: ...
102