from pandas._typing import FilePathOrBuffer as FilePathOrBuffer, Scalar as Scalar
from pandas.io.excel._base import ExcelWriter as ExcelWriter, _BaseExcelReader
from typing import Any, List, Optional, AnyStr


class _OpenpyxlWriter(ExcelWriter):
    engine: str = ...
    supported_extensions: Any = ...
    book: Any = ...
    def __init__(self, path: Any, engine: Optional[Any] = ..., mode: str = ..., **engine_kwargs: Any) -> None: ...
    def save(self) -> Any: ...
    def write_cells(self, cells: Any, sheet_name: Optional[Any] = ..., startrow: int = ..., startcol: int = ..., freeze_panes: Optional[Any] = ...) -> None: ...

class _OpenpyxlReader(_BaseExcelReader):
    def __init__(self, filepath_or_buffer: FilePathOrBuffer[AnyStr]) -> None: ...
    def load_workbook(self, filepath_or_buffer: FilePathOrBuffer[AnyStr]) -> Any: ...
    def close(self) -> None: ...
    @property
    def sheet_names(self) -> List[str]: ...
    def get_sheet_by_name(self, name: str) -> Any: ...
    def get_sheet_by_index(self, index: int) -> Any: ...
    def get_sheet_data(self, sheet: Any, convert_float: bool) -> List[List[Scalar]]: ...
