from __future__ import annotations
from typing import Any, Protocol, runtime_checkable
from com.sun.star.uno import XInterface

@runtime_checkable
class XCharacterClassification(XInterface, Protocol):
    def toUpper(self, aText: str, nPos: int, nCount: int, aLocale: Locale) -> str: ...
    def toLower(self, aText: str, nPos: int, nCount: int, aLocale: Locale) -> str: ...
    def toTitle(self, aText: str, nPos: int, nCount: int, aLocale: Locale) -> str: ...
    def getType(self, aText: str, nPos: int) -> int: ...
    def getCharacterDirection(self, aText: str, nPos: int) -> int: ...
    def getScript(self, aText: str, nPos: int) -> int: ...
    def getCharacterType(self, aText: str, nPos: int, aLocale: Locale) -> int: ...
    def getStringType(self, aText: str, nPos: int, nCount: int, aLocale: Locale) -> int: ...
    def parseAnyToken(self, aText: str, nPos: int, aLocale: Locale, nStartCharFlags: int, aUserDefinedCharactersStart: str, nContCharFlags: int, aUserDefinedCharactersCont: str) -> ParseResult: ...
    def parsePredefinedToken(self, nTokenType: int, aText: str, nPos: int, aLocale: Locale, nStartCharFlags: int, aUserDefinedCharactersStart: str, nContCharFlags: int, aUserDefinedCharactersCont: str) -> ParseResult: ...
