# src/pdftl/api.pyi
from typing import Any, Dict, List, Optional

import pikepdf

def add_text(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def dump_files(output: Optional[str] = ...) -> pikepdf.Pdf: ...
def unpack_files(output: Optional[str] = ...) -> pikepdf.Pdf: ...
def burst(opened_pdfs: Optional[List[pikepdf.Pdf]] = ...) -> pikepdf.Pdf: ...
def cat(
    inputs: Optional[List[str]] = ...,
    operation_args: Optional[List[str]] = ...,
    opened_pdfs: Optional[List[pikepdf.Pdf]] = ...,
) -> pikepdf.Pdf: ...
def chop(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def crop(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def delete(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def delete_annots(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def dump_annots(output: Optional[str] = ...) -> pikepdf.Pdf: ...
def dump_data_annots(output: Optional[str] = ...) -> pikepdf.Pdf: ...
def dump_data(output: Optional[str] = ...) -> pikepdf.Pdf: ...
def dump_data_utf8(output: Optional[str] = ...) -> pikepdf.Pdf: ...
def dump_data_fields(output: Optional[str] = ...) -> pikepdf.Pdf: ...
def dump_data_fields_utf8(output: Optional[str] = ...) -> pikepdf.Pdf: ...
def dump_dests(output: Optional[str] = ...) -> pikepdf.Pdf: ...
def dump_layers(output: Optional[str] = ...) -> pikepdf.Pdf: ...
def dump_signatures(password: Optional[str] = ..., output: Optional[str] = ...) -> pikepdf.Pdf: ...
def dump_text(password: Optional[str] = ..., output: Optional[str] = ...) -> pikepdf.Pdf: ...
def fill_form(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def filter() -> pikepdf.Pdf: ...
def generate_fdf(output: Optional[str] = ...) -> pikepdf.Pdf: ...
def inject(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def insert(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def modify_annots(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def move(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def normalize(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def optimize_images(
    operation_args: Optional[List[str]] = ..., output: Optional[str] = ...
) -> pikepdf.Pdf: ...
def multibackground() -> pikepdf.Pdf: ...
def background() -> pikepdf.Pdf: ...
def multistamp() -> pikepdf.Pdf: ...
def stamp() -> pikepdf.Pdf: ...
def place(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def render(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def replace(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def rotate(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def shuffle(
    inputs: Optional[List[str]] = ...,
    operation_args: Optional[List[str]] = ...,
    opened_pdfs: Optional[List[pikepdf.Pdf]] = ...,
) -> pikepdf.Pdf: ...
def update_info(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
def update_info_utf8(operation_args: Optional[List[str]] = ...) -> pikepdf.Pdf: ...
