# @generated by generate_proto_mypy_stubs.py.  Do not edit!
import sys
from google.protobuf.descriptor import (
    Descriptor as google___protobuf___descriptor___Descriptor,
    EnumDescriptor as google___protobuf___descriptor___EnumDescriptor,
)

from google.protobuf.message import (
    Message as google___protobuf___message___Message,
)

from typing import (
    List as typing___List,
    Optional as typing___Optional,
    Tuple as typing___Tuple,
    Union as typing___Union,
    cast as typing___cast,
)

from typing_extensions import (
    Literal as typing_extensions___Literal,
)


builtin___bool = bool
builtin___bytes = bytes
builtin___float = float
builtin___int = int
builtin___str = str
if sys.version_info < (3,):
    builtin___buffer = buffer
    builtin___unicode = unicode


class LedgerSpecifier(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    class Shortcut(builtin___int):
        DESCRIPTOR: google___protobuf___descriptor___EnumDescriptor = ...
        @classmethod
        def Name(cls, number: builtin___int) -> builtin___str: ...
        @classmethod
        def Value(cls, name: builtin___str) -> 'LedgerSpecifier.Shortcut': ...
        @classmethod
        def keys(cls) -> typing___List[builtin___str]: ...
        @classmethod
        def values(cls) -> typing___List['LedgerSpecifier.Shortcut']: ...
        @classmethod
        def items(cls) -> typing___List[typing___Tuple[builtin___str, 'LedgerSpecifier.Shortcut']]: ...
        SHORTCUT_UNSPECIFIED = typing___cast('LedgerSpecifier.Shortcut', 0)
        SHORTCUT_VALIDATED = typing___cast('LedgerSpecifier.Shortcut', 1)
        SHORTCUT_CLOSED = typing___cast('LedgerSpecifier.Shortcut', 2)
        SHORTCUT_CURRENT = typing___cast('LedgerSpecifier.Shortcut', 3)
    SHORTCUT_UNSPECIFIED = typing___cast('LedgerSpecifier.Shortcut', 0)
    SHORTCUT_VALIDATED = typing___cast('LedgerSpecifier.Shortcut', 1)
    SHORTCUT_CLOSED = typing___cast('LedgerSpecifier.Shortcut', 2)
    SHORTCUT_CURRENT = typing___cast('LedgerSpecifier.Shortcut', 3)

    shortcut = ... # type: LedgerSpecifier.Shortcut
    sequence = ... # type: builtin___int
    hash = ... # type: builtin___bytes

    def __init__(self,
        *,
        shortcut : typing___Optional[LedgerSpecifier.Shortcut] = None,
        sequence : typing___Optional[builtin___int] = None,
        hash : typing___Optional[builtin___bytes] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> LedgerSpecifier: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> LedgerSpecifier: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def HasField(self, field_name: typing_extensions___Literal[u"hash",u"ledger",u"sequence",u"shortcut"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"hash",u"ledger",u"sequence",u"shortcut"]) -> None: ...
    else:
        def HasField(self, field_name: typing_extensions___Literal[u"hash",b"hash",u"ledger",b"ledger",u"sequence",b"sequence",u"shortcut",b"shortcut"]) -> builtin___bool: ...
        def ClearField(self, field_name: typing_extensions___Literal[u"hash",b"hash",u"ledger",b"ledger",u"sequence",b"sequence",u"shortcut",b"shortcut"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions___Literal[u"ledger",b"ledger"]) -> typing_extensions___Literal["shortcut","sequence","hash"]: ...

class LedgerRange(google___protobuf___message___Message):
    DESCRIPTOR: google___protobuf___descriptor___Descriptor = ...
    ledger_index_min = ... # type: builtin___int
    ledger_index_max = ... # type: builtin___int

    def __init__(self,
        *,
        ledger_index_min : typing___Optional[builtin___int] = None,
        ledger_index_max : typing___Optional[builtin___int] = None,
        ) -> None: ...
    if sys.version_info >= (3,):
        @classmethod
        def FromString(cls, s: builtin___bytes) -> LedgerRange: ...
    else:
        @classmethod
        def FromString(cls, s: typing___Union[builtin___bytes, builtin___buffer, builtin___unicode]) -> LedgerRange: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"ledger_index_max",u"ledger_index_min"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"ledger_index_max",b"ledger_index_max",u"ledger_index_min",b"ledger_index_min"]) -> None: ...
