from __future__ import annotations

from typing import Any, Iterable

FRAME: int
ALL: int
NONE: int
HEADER: int

class PrettyTable:
    _field_names: list[str]
    def __init__(
        self, field_names: None | Iterable[str] = None, **kwargs: str
    ) -> None: ...
    def _format_row(
        self, row: Iterable[str]
    ) -> dict[str, str | list[str]]: ...
    def _format_rows(
        self, row: Iterable[str]
    ) -> list[dict[str, str | list[str]]]: ...
    def _get_options(
        self, kwargs: dict[str, str | list[str]]
    ) -> dict[str, str | list[str]]: ...
    def _get_rows(self, options: dict[str, str | list[str]]) -> list[str]: ...
    def add_row(self, row: list[Any]) -> None: ...
    @property
    def align(self) -> dict[str, str]: ...
    @align.setter
    def align(self, val: str | dict[str, str]) -> None: ...
    @property
    def border(self) -> bool: ...
    @border.setter
    def border(self, val: bool) -> None: ...
    @property
    def field_names(self) -> list[str]: ...
    @field_names.setter
    def field_names(self, val: Iterable[str]) -> None: ...
    def get_html_string(self, **kwargs: str | list[str]) -> str: ...
    def get_string(self, **kwargs: str | list[str]) -> str: ...
    @property
    def header(self) -> bool: ...
    @header.setter
    def header(self, val: bool) -> None: ...
    @property
    def hrules(self) -> int: ...
    @hrules.setter
    def hrules(self, val: int) -> None: ...
    @property
    def junction_char(self) -> str: ...
    @junction_char.setter
    def junction_char(self, val: str) -> None: ...
    @property
    def rows(self) -> list[tuple[str]]: ...
