1import collections
2from typing import Any
3
4def encode_text(s: str) -> bytes: ...
5
6PDFDocEncoding: dict[int, str]
7
8def decode_text(b: bytes) -> str: ...
9
10class PdfFormatError(RuntimeError): ...
11
12def check_format_condition(condition, error_message) -> None: ...
13
14class IndirectReference:
15    def __bytes__(self): ...
16    def __eq__(self, other): ...
17    def __ne__(self, other): ...
18    def __hash__(self): ...
19
20class IndirectObjectDef(IndirectReference): ...
21
22class XrefTable:
23    existing_entries: Any
24    new_entries: Any
25    deleted_entries: Any
26    reading_finished: bool
27    def __init__(self) -> None: ...
28    def __setitem__(self, key, value) -> None: ...
29    def __getitem__(self, key): ...
30    def __delitem__(self, key) -> None: ...
31    def __contains__(self, key): ...
32    def __len__(self): ...
33    def keys(self): ...
34    def write(self, f): ...
35
36class PdfName:
37    name: Any
38    def __init__(self, name) -> None: ...
39    def name_as_str(self): ...
40    def __eq__(self, other): ...
41    def __hash__(self): ...
42    @classmethod
43    def from_pdf_stream(cls, data): ...
44    allowed_chars: Any
45    def __bytes__(self): ...
46
47class PdfArray(list[Any]):
48    def __bytes__(self): ...
49
50class PdfDict(collections.UserDict):
51    def __setattr__(self, key, value) -> None: ...
52    def __getattr__(self, key): ...
53    def __bytes__(self): ...
54
55class PdfBinary:
56    data: Any
57    def __init__(self, data) -> None: ...
58    def __bytes__(self): ...
59
60class PdfStream:
61    dictionary: Any
62    buf: Any
63    def __init__(self, dictionary, buf) -> None: ...
64    def decode(self): ...
65
66def pdf_repr(x: Any) -> bytes: ...
67
68class PdfParser:
69    filename: Any
70    buf: Any
71    f: Any
72    start_offset: Any
73    should_close_buf: bool
74    should_close_file: bool
75    cached_objects: Any
76    file_size_total: int
77    root: Any
78    root_ref: Any
79    info: Any
80    info_ref: Any
81    page_tree_root: Any
82    pages: Any
83    orig_pages: Any
84    pages_ref: Any
85    last_xref_section_offset: Any
86    trailer_dict: Any
87    xref_table: Any
88    def __init__(
89        self, filename: Any | None = ..., f: Any | None = ..., buf: Any | None = ..., start_offset: int = ..., mode: str = ...
90    ) -> None: ...
91    def __enter__(self): ...
92    def __exit__(self, exc_type, exc_value, traceback): ...
93    def start_writing(self) -> None: ...
94    def close_buf(self) -> None: ...
95    def close(self) -> None: ...
96    def seek_end(self) -> None: ...
97    def write_header(self) -> None: ...
98    def write_comment(self, s) -> None: ...
99    def write_catalog(self): ...
100    def rewrite_pages(self) -> None: ...
101    def write_xref_and_trailer(self, new_root_ref: Any | None = ...) -> None: ...
102    def write_page(self, ref, *objs, **dict_obj): ...
103    def write_obj(self, ref, *objs, **dict_obj): ...
104    def del_root(self) -> None: ...
105    @staticmethod
106    def get_buf_from_file(f): ...
107    file_size_this: Any
108    def read_pdf_info(self) -> None: ...
109    def next_object_id(self, offset: Any | None = ...): ...
110    delimiter: bytes
111    delimiter_or_ws: bytes
112    whitespace: bytes
113    whitespace_or_hex: bytes
114    whitespace_optional: Any
115    whitespace_mandatory: Any
116    whitespace_optional_no_nl: bytes
117    newline_only: bytes
118    newline: Any
119    re_trailer_end: Any
120    re_trailer_prev: Any
121    def read_trailer(self) -> None: ...
122    def read_prev_trailer(self, xref_section_offset) -> None: ...
123    re_whitespace_optional: Any
124    re_name: Any
125    re_dict_start: Any
126    re_dict_end: Any
127    @classmethod
128    def interpret_trailer(cls, trailer_data): ...
129    re_hashes_in_name: Any
130    @classmethod
131    def interpret_name(cls, raw, as_text: bool = ...): ...
132    re_null: Any
133    re_true: Any
134    re_false: Any
135    re_int: Any
136    re_real: Any
137    re_array_start: Any
138    re_array_end: Any
139    re_string_hex: Any
140    re_string_lit: Any
141    re_indirect_reference: Any
142    re_indirect_def_start: Any
143    re_indirect_def_end: Any
144    re_comment: Any
145    re_stream_start: Any
146    re_stream_end: Any
147    @classmethod
148    def get_value(cls, data, offset, expect_indirect: Any | None = ..., max_nesting: int = ...): ...
149    re_lit_str_token: Any
150    escaped_chars: Any
151    @classmethod
152    def get_literal_string(cls, data, offset): ...
153    re_xref_section_start: Any
154    re_xref_subsection_start: Any
155    re_xref_entry: Any
156    def read_xref_table(self, xref_section_offset): ...
157    def read_indirect(self, ref, max_nesting: int = ...): ...
158    def linearize_page_tree(self, node: Any | None = ...): ...
159