from collections.abc import Generator
from typing import Any

from openpyxl.workbook.child import _WorkbookChild

class Worksheet(_WorkbookChild):
    mime_type: str
    BREAK_NONE: int
    BREAK_ROW: int
    BREAK_COLUMN: int
    SHEETSTATE_VISIBLE: str
    SHEETSTATE_HIDDEN: str
    SHEETSTATE_VERYHIDDEN: str
    PAPERSIZE_LETTER: str
    PAPERSIZE_LETTER_SMALL: str
    PAPERSIZE_TABLOID: str
    PAPERSIZE_LEDGER: str
    PAPERSIZE_LEGAL: str
    PAPERSIZE_STATEMENT: str
    PAPERSIZE_EXECUTIVE: str
    PAPERSIZE_A3: str
    PAPERSIZE_A4: str
    PAPERSIZE_A4_SMALL: str
    PAPERSIZE_A5: str
    ORIENTATION_PORTRAIT: str
    ORIENTATION_LANDSCAPE: str
    def __init__(self, parent, title: Any | None = ...) -> None: ...
    @property
    def sheet_view(self): ...
    @property
    def selected_cell(self): ...
    @property
    def active_cell(self): ...
    @property
    def page_breaks(self): ...
    @property
    def show_gridlines(self): ...
    @property
    def show_summary_below(self): ...
    @property
    def show_summary_right(self): ...
    @property
    def freeze_panes(self): ...
    @freeze_panes.setter
    def freeze_panes(self, topLeftCell: Any | None = ...) -> None: ...
    def cell(self, row, column, value: Any | None = ...): ...
    def __getitem__(self, key): ...
    def __setitem__(self, key, value) -> None: ...
    def __iter__(self): ...
    def __delitem__(self, key) -> None: ...
    @property
    def min_row(self): ...
    @property
    def max_row(self): ...
    @property
    def min_column(self): ...
    @property
    def max_column(self): ...
    def calculate_dimension(self): ...
    @property
    def dimensions(self): ...
    def iter_rows(
        self,
        min_row: Any | None = ...,
        max_row: Any | None = ...,
        min_col: Any | None = ...,
        max_col: Any | None = ...,
        values_only: bool = ...,
    ): ...
    @property
    def rows(self): ...
    @property
    def values(self) -> Generator[Any, None, None]: ...
    def iter_cols(
        self,
        min_col: Any | None = ...,
        max_col: Any | None = ...,
        min_row: Any | None = ...,
        max_row: Any | None = ...,
        values_only: bool = ...,
    ): ...
    @property
    def columns(self): ...
    def set_printer_settings(self, paper_size, orientation) -> None: ...
    def add_data_validation(self, data_validation) -> None: ...
    def add_chart(self, chart, anchor: Any | None = ...) -> None: ...
    def add_image(self, img, anchor: Any | None = ...) -> None: ...
    def add_table(self, table) -> None: ...
    @property
    def tables(self): ...
    def add_pivot(self, pivot) -> None: ...
    def merge_cells(
        self,
        range_string: Any | None = ...,
        start_row: Any | None = ...,
        start_column: Any | None = ...,
        end_row: Any | None = ...,
        end_column: Any | None = ...,
    ) -> None: ...
    @property
    def merged_cell_ranges(self): ...
    def unmerge_cells(
        self,
        range_string: Any | None = ...,
        start_row: Any | None = ...,
        start_column: Any | None = ...,
        end_row: Any | None = ...,
        end_column: Any | None = ...,
    ) -> None: ...
    def append(self, iterable) -> None: ...
    def insert_rows(self, idx, amount: int = ...) -> None: ...
    def insert_cols(self, idx, amount: int = ...) -> None: ...
    def delete_rows(self, idx, amount: int = ...) -> None: ...
    def delete_cols(self, idx, amount: int = ...) -> None: ...
    def move_range(self, cell_range, rows: int = ..., cols: int = ..., translate: bool = ...) -> None: ...
    @property
    def print_title_rows(self): ...
    @print_title_rows.setter
    def print_title_rows(self, rows) -> None: ...
    @property
    def print_title_cols(self): ...
    @print_title_cols.setter
    def print_title_cols(self, cols) -> None: ...
    @property
    def print_titles(self): ...
    @property
    def print_area(self): ...
    @print_area.setter
    def print_area(self, value) -> None: ...
