from typing import Iterator, Optional

def hello_from_bin() -> str: ...
def load_workbook(path: str) -> "Book": ...

class Book:
    path: str
    sheetnames: list[str]

    def __init__(self, path: str = ...) -> None: ...
    def __iter__(self) -> Iterator[str]: ...
    def __getitem__(self, key: str) -> "Sheet": ...
    def __delitem__(self, key: str) -> None: ...
    def __contains__(self, key: str) -> bool: ...
    def index(self, sheet: "Sheet") -> int: ...
    def remove(self, sheet: "Sheet") -> None: ...
    def create_sheet(self, title: str, index: int) -> "Sheet": ...
    def copy(self, path: str) -> None: ...

class Sheet:
    @property
    def name(self) -> str: ...
    def __getitem__(self, key: str) -> "Cell": ...
    def cell(self, row: int, column: int) -> "Cell": ...

class Cell:
    @property
    def value(self) -> Optional[str]: ...
    @value.setter
    def value(self, value: str) -> None: ...
    @property
    def font(self) -> Optional["Font"]: ...
    @font.setter
    def font(self, font: "Font") -> None: ...
    @property
    def fill(self) -> Optional["PatternFill"]: ...
    @fill.setter
    def fill(self, font: "PatternFill") -> None: ...

class Font:
    name: Optional[str]
    size: Optional[float]
    bold: Optional[bool]
    italic: Optional[bool]
    color: Optional[str]
    def __init__(
        self,
        name: Optional[str] = ...,
        size: Optional[float] = ...,
        bold: Optional[bool] = ...,
        italic: Optional[bool] = ...,
        color: Optional[str] = ...,
    ) -> None: ...

class PatternFill:
    pattern_type: Optional[str]
    fg_color: Optional[str]
    bg_color: Optional[str]
    def __init__(
        self,
        pattern_type: Optional[str] = ...,
        fg_color: Optional[str] = ...,
        bg_color: Optional[str] = ...,
    ) -> None: ...

class Xml: ...
class XmlElement: ...
