from typing import Iterator, TypeGuard

class stringbuilder:
    def __init__(self, *value: object) -> None: ...
    def append(self, *values: object) -> "stringbuilder": ...
    def append_line(self, *values: object) -> "stringbuilder": ...
    def __rebuild_lines(self) -> None: ...
    def __rebuild_flags(self, new_str: str) -> None: ...
    def insert(self, index: int, *values: object) -> "stringbuilder": ...
    def insert_line(self, index: int, *values: object) -> "stringbuilder": ...
    def remove(self, start: int, length: int) -> "stringbuilder": ...
    def replace(self, old, new) -> "stringbuilder": ...
    def clear(self) -> "stringbuilder": ...
    def copy(self) -> "stringbuilder": ...
    def copy_flattened(self) -> "stringbuilder": ...
    @property
    def raw(self) -> str: ...
    @property
    def parts(self) -> list[str]: ...
    @property
    def lines(self) -> list[str]: ...
    @property
    def flags(self) -> list[bool]: ...
    def __str__(self) -> str: ...
    def __repr__(self) -> str: ...
    def __len__(self) -> int: ...
    def __iter__(self) -> Iterator[str]: ...
    def __list__(self) -> list[str]: ...
    def __hash__(self) -> int: ...
    def __getitem__(self, k: int | slice) -> str: ...
    def __setitem__(self, k: int, v: str) -> "stringbuilder": ...
    def __delitem__(self, key: int | slice) -> None: ...
    def __add__(self, other: object) -> "stringbuilder": ...
    def __radd__(self, other: object) -> "stringbuilder": ...
    def __iadd__(self, other: object) -> "stringbuilder": ...
    def __is_sb(self, a: object) -> TypeGuard["stringbuilder"]: ...
