from .kakasi import Kakasi as Kakasi, PyKakasiException as PyKakasiException
from .kanji import Itaiji as Itaiji, JConv as JConv
from .properties import Ch as Ch
from .scripts import A2 as A2, H2 as H2, K2 as K2, Sym2 as Sym2
from typing import Any, Dict, List, Optional, Tuple, Union

class UnsupportedRomanRulesException(PyKakasiException): ...
class UnknownOptionsException(PyKakasiException): ...
class InvalidModeValueException(PyKakasiException): ...
class InvalidFlagValueException(PyKakasiException): ...

class kakasi:
    def __init__(self) -> None: ...
    def convert(self, text: str) -> List[Dict[str, str]]: ...
    def setMode(self, fr: str, to: Optional[Union[bool, str]]) -> None: ...
    def getConverter(self): ...
    def do(self, text: str) -> str: ...

class wakati(kakasi):
    def __init__(self) -> None: ...
    def getConverter(self): ...
    def setMode(self, fr: str, to: Optional[Union[bool, str]]) -> None: ...
    def do(self, text: str) -> str: ...

class J2:
    convert: Any = ...
    def __init__(self, mode: str = ..., method: str = ...) -> None: ...
    def isRegion(self, c: str) -> Any: ...
    def convert_h(self, itext: Any) -> Tuple[str, int]: ...
    def convert_nonh(self, text: Any): ...
    def convert_noop(self, text: Any): ...
