from collections.abc import Iterator

from typing_extensions import disjoint_base

from icu4py.locale import Locale

@disjoint_base
class BaseBreaker:
    def __init__(self, text: str, locale: str | Locale) -> None: ...
    def segments(self) -> Iterator[tuple[int, int]]: ...
    def __iter__(self) -> Iterator[str]: ...
    @property
    def text(self) -> str: ...
    @property
    def locale(self) -> Locale: ...

class CharacterBreaker(BaseBreaker): ...
class WordBreaker(BaseBreaker): ...
class LineBreaker(BaseBreaker): ...
class SentenceBreaker(BaseBreaker): ...
