from _typeshed import Incomplete
from enum import Enum

class Area(Enum):
    TOP_LEFT: int
    TOP_RIGHT: int
    BOTTOM_RIGHT: int
    BOTTOM_LEFT: int

class RedactionStyle(Enum):
    SOLID: Incomplete
    OUTLINE: Incomplete
    stroke: Incomplete
    fill: Incomplete
    text: Incomplete
    def __init__(self, stroke, fill, text) -> None: ...

class Marisol:
    prefix: Incomplete
    fill: Incomplete
    start: Incomplete
    area: Incomplete
    index: int
    number: int
    documents: Incomplete
    overwrite: bool
    def __init__(self, prefix, fill, start, area=...) -> None: ...
    def __getitem__(self, key): ...
    def __len__(self) -> int: ...
    def __iter__(self): ...
    def __next__(self): ...
    def _save_document(self, document): ...
    def append(self, file): ...
    def save(self, overwrite: bool = ..., threads=...): ...

class Document:
    reader: Incomplete
    prefix: Incomplete
    fill: Incomplete
    start: Incomplete
    area: Incomplete
    overlays: Incomplete
    index: int
    pages: Incomplete
    def __init__(self, file, prefix, fill, start, area) -> None: ...
    def __getitem__(self, k): ...
    def __len__(self) -> int: ...
    def __iter__(self): ...
    def __next__(self): ...
    def __str__(self): ...
    @property
    def begin(self): ...
    @property
    def end(self): ...
    def save(self, filename: Incomplete | None = ..., overwrite: bool = ...): ...
    def add_overlay(self, overlay): ...

class Page:
    document: Incomplete
    page: Incomplete
    prefix: Incomplete
    fill: Incomplete
    start: Incomplete
    height: Incomplete
    width: Incomplete
    canvas_file: Incomplete
    canvas: Incomplete
    redactions: Incomplete
    def __init__(self, document, page, prefix, fill, start) -> None: ...
    def __str__(self): ...
    def add_redaction(self, redaction): ...
    def apply(self): ...
    @property
    def number(self): ...

class GenericTextOverlay:
    text: Incomplete
    area: Incomplete
    def __init__(self, text, area) -> None: ...
    def apply(self, c) -> None: ...
    def position(self, c): ...

class BatesOverlay(GenericTextOverlay): ...
class StaticOverlay(GenericTextOverlay): ...

class Redaction:
    position: Incomplete
    size: Incomplete
    center: Incomplete
    text: Incomplete
    style: Incomplete
    def __init__(self, position, size, text: Incomplete | None = ..., style=...) -> None: ...
    def apply(self, c) -> None: ...

class OutsideBoundariesError(ValueError): ...
