# src/pdftl/fluent.pyi
from typing import Any, Dict, List, Optional, Union
import pikepdf
from pikepdf import Pdf
from pathlib import Path

def pipeline(pdf_or_path: "Pdf | str | Path", password: "str | None" = None) -> "PdfPipeline": ...

class PdfPipeline:
    def __init__(self, pdf: pikepdf.Pdf): ...
    @classmethod
    def open(cls, filename: str, password: Optional[str] = None) -> "PdfPipeline": ...
    def save(
        self,
        filename: Union[str, Path],
        input_context: Any = None,
        set_pdf_id: Optional[bytes] = None,
        **kwargs: Any,
    ) -> "PdfPipeline": ...
    def get(self) -> pikepdf.Pdf: ...
    def __enter__(self) -> "PdfPipeline": ...
    def __exit__(self, t: Any, v: Any, tb: Any) -> None: ...
    def add_bookmarks(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def add_images(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def add_marks(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def add_text(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def attach_files(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def background(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def barcode(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def booklet(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def burst(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def cat(
        self, inputs: Optional[List[str]] = ..., operation_args: Optional[List[str]] = ...
    ) -> "PdfPipeline": ...
    def chop(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def clip(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def create(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def crop(self) -> "PdfPipeline": ...
    def deduplicate_fonts(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def deduplicate_icc_profiles(
        self, operation_args: Optional[List[str]] = ...
    ) -> "PdfPipeline": ...
    def deduplicate_images(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def delete(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def delete_actions(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def delete_annots(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def delete_attachments(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def delete_blank(self) -> "PdfPipeline": ...
    def delete_bookmarks(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def delete_images(self) -> "PdfPipeline": ...
    def deskew(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def diff_text(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_actions(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_annots(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_bookmarks(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_colorspaces(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_data(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_data_annots(self, output: Optional[str] = ...) -> "PdfPipeline": ...
    def dump_data_fields(self, output: Optional[str] = ...) -> "PdfPipeline": ...
    def dump_data_fields_utf8(self, output: Optional[str] = ...) -> "PdfPipeline": ...
    def dump_data_utf8(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_dests(self, output: Optional[str] = ...) -> "PdfPipeline": ...
    def dump_encryption(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_files(self, output: Optional[str] = ...) -> "PdfPipeline": ...
    def dump_fonts(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_images(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_layers(self, output: Optional[str] = ...) -> "PdfPipeline": ...
    def dump_signatures(
        self,
        password: Optional[str] = ...,
        operation_args: Optional[List[str]] = ...,
        output: Optional[str] = ...,
    ) -> "PdfPipeline": ...
    def dump_streams(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_tables(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_tags(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def dump_text(
        self, password: Optional[str] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def embed_fonts(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def excise(self) -> "PdfPipeline": ...
    def export_fonts(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def export_images(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def fill_form(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def filter(self) -> "PdfPipeline": ...
    def generate_fdf(self, output: Optional[str] = ...) -> "PdfPipeline": ...
    def grep(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def highlight(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def import_fonts(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def import_images(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def import_streams(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def inject(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def insert(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def link_urls(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def modify_annots(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def modify_images(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def modify_layers(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def montage(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def move(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def multibackground(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def multistamp(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def mutate_content(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def normalize(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def optimize_images(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def place(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def recolor_images(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def recolor_vectors(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def redact(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def render(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def replace(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def resample_images(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def rotate(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def server(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def set(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def shuffle(
        self, inputs: Optional[List[str]] = ..., operation_args: Optional[List[str]] = ...
    ) -> "PdfPipeline": ...
    def simplify_vectors(self) -> "PdfPipeline": ...
    def stamp(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def stamp_fields(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def style_text(self) -> "PdfPipeline": ...
    def subset_fonts(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def tag(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def unpack_files(self, output: Optional[str] = ...) -> "PdfPipeline": ...
    def unpause(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def update_bookmarks(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def update_info(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def update_info_utf8(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
    def usage(
        self, operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
    ) -> "PdfPipeline": ...
    def zoom(self, operation_args: Optional[List[str]] = ...) -> "PdfPipeline": ...
