import java.lang
import org.ergoplatform.wallet.interface4j
import scala
import scala.collection
import scala.util
import typing



class Mnemonic:
    def __init__(self, languageId: typing.Union[java.lang.String, str], strength: int): ...
    @staticmethod
    def AllowedEntropyLengths() -> scala.collection.Seq[typing.Any]: ...
    @staticmethod
    def AllowedStrengths() -> scala.collection.Seq[typing.Any]: ...
    @staticmethod
    def BitsGroupSize() -> int: ...
    @staticmethod
    def MnemonicSentenceSizes() -> scala.collection.Seq[typing.Any]: ...
    @staticmethod
    def Pbkdf2Algorithm() -> java.lang.String: ...
    @staticmethod
    def Pbkdf2Iterations() -> int: ...
    @staticmethod
    def Pbkdf2KeyLength() -> int: ...
    def generate(self) -> scala.util.Try[org.ergoplatform.wallet.interface4j.SecretString]: ...
    def toMnemonic(self, entropy: typing.List[int]) -> scala.util.Try[org.ergoplatform.wallet.interface4j.SecretString]: ...
    @staticmethod
    def toSeed(mnemonic: org.ergoplatform.wallet.interface4j.SecretString, passOpt: scala.Option[org.ergoplatform.wallet.interface4j.SecretString]) -> typing.List[int]: ...
    @staticmethod
    def toSeed$default$2() -> scala.Option[org.ergoplatform.wallet.interface4j.SecretString]: ...

class WordList(scala.Product, scala.Serializable):
    def __init__(self, words: scala.collection.Seq[typing.Union[java.lang.String, str]], delimiter: typing.Union[java.lang.String, str]): ...
    @staticmethod
    def AvailableLanguages() -> scala.collection.Seq[java.lang.String]: ...
    @staticmethod
    def apply(words: scala.collection.Seq[typing.Union[java.lang.String, str]], delimiter: typing.Union[java.lang.String, str]) -> 'WordList': ...
    def canEqual(self, x$1: typing.Any) -> bool: ...
    def copy(self, words: scala.collection.Seq[typing.Union[java.lang.String, str]], delimiter: typing.Union[java.lang.String, str]) -> 'WordList': ...
    def copy$default$1(self) -> scala.collection.Seq[java.lang.String]: ...
    def copy$default$2(self) -> java.lang.String: ...
    def delimiter(self) -> java.lang.String: ...
    def equals(self, x$1: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    @staticmethod
    def load(languageId: typing.Union[java.lang.String, str]) -> scala.util.Try['WordList']: ...
    def productArity(self) -> int: ...
    def productElement(self, x$1: int) -> typing.Any: ...
    def productIterator(self) -> scala.collection.Iterator[typing.Any]: ...
    def productPrefix(self) -> java.lang.String: ...
    def toString(self) -> java.lang.String: ...
    @staticmethod
    def unapply(x$0: 'WordList') -> scala.Option[scala.Tuple2[scala.collection.Seq[java.lang.String], java.lang.String]]: ...
    def words(self) -> scala.collection.Seq[java.lang.String]: ...


class __module_protocol__(typing.Protocol):
    # A module protocol which reflects the result of ``jp.JPackage("org.ergoplatform.wallet.mnemonic")``.

    Mnemonic: typing.Type[Mnemonic]
    WordList: typing.Type[WordList]
