from abc import ABC
from typing import Any, List

def clear_empty_fields(d): ...
def create_dictionary_string(
    dict_,
    open_dict: str = ...,
    close_dict: str = ...,
    field_join: str = ...,
    key_value_join: str = ...,
    has_empty_fields: bool = ...,
): ...
def create_list_string(list_): ...
def iobj_ref(n): ...
def create_stream(stream): ...

class PDFObject:
    def __init__(self, id: Any | None = ...) -> None: ...
    @property
    def id(self): ...
    @id.setter
    def id(self, n) -> None: ...
    @property
    def ref(self): ...
    def serialize(self, fpdf: Any | None = ..., obj_dict: Any | None = ...): ...

def camel_case(property_name): ...

class PDFString(str):
    def serialize(self): ...

class PDFArray(List[Any]):
    def serialize(self): ...

class Destination(ABC):
    def as_str(self, pdf: Any | None = ...) -> None: ...

class DestinationXYZ(Destination):
    page: Any
    x: Any
    y: Any
    zoom: Any
    page_as_obj_id: Any
    def __init__(self, page, x: int = ..., y: int = ..., zoom: str = ..., page_as_obj_id: bool = ...) -> None: ...
    def as_str(self, pdf: Any | None = ...): ...
