"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import sys
import typing

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _NetAddressType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _NetAddressTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_NetAddressType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    Ipv4: _NetAddressType.ValueType  # 0
    Ipv6: _NetAddressType.ValueType  # 1
    TorV2: _NetAddressType.ValueType  # 2
    TorV3: _NetAddressType.ValueType  # 3

class NetAddressType(_NetAddressType, metaclass=_NetAddressTypeEnumTypeWrapper): ...

Ipv4: NetAddressType.ValueType  # 0
Ipv6: NetAddressType.ValueType  # 1
TorV2: NetAddressType.ValueType  # 2
TorV3: NetAddressType.ValueType  # 3
global___NetAddressType = NetAddressType

class _BtcAddressType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _BtcAddressTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_BtcAddressType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    BECH32: _BtcAddressType.ValueType  # 0
    """Default"""
    P2SH_SEGWIT: _BtcAddressType.ValueType  # 1

class BtcAddressType(_BtcAddressType, metaclass=_BtcAddressTypeEnumTypeWrapper): ...

BECH32: BtcAddressType.ValueType  # 0
"""Default"""
P2SH_SEGWIT: BtcAddressType.ValueType  # 1
global___BtcAddressType = BtcAddressType

class _OutputStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _OutputStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_OutputStatus.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    CONFIRMED: _OutputStatus.ValueType  # 0
    UNCONFIRMED: _OutputStatus.ValueType  # 1

class OutputStatus(_OutputStatus, metaclass=_OutputStatusEnumTypeWrapper): ...

CONFIRMED: OutputStatus.ValueType  # 0
UNCONFIRMED: OutputStatus.ValueType  # 1
global___OutputStatus = OutputStatus

class _FeeratePreset:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _FeeratePresetEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_FeeratePreset.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NORMAL: _FeeratePreset.ValueType  # 0
    SLOW: _FeeratePreset.ValueType  # 1
    URGENT: _FeeratePreset.ValueType  # 2

class FeeratePreset(_FeeratePreset, metaclass=_FeeratePresetEnumTypeWrapper):
    """Let the node decide what feerate to apply based on its internal
    view of the network's current feerate.
    """

NORMAL: FeeratePreset.ValueType  # 0
SLOW: FeeratePreset.ValueType  # 1
URGENT: FeeratePreset.ValueType  # 2
global___FeeratePreset = FeeratePreset

class _CloseChannelType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _CloseChannelTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_CloseChannelType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    MUTUAL: _CloseChannelType.ValueType  # 0
    UNILATERAL: _CloseChannelType.ValueType  # 1

class CloseChannelType(_CloseChannelType, metaclass=_CloseChannelTypeEnumTypeWrapper): ...

MUTUAL: CloseChannelType.ValueType  # 0
UNILATERAL: CloseChannelType.ValueType  # 1
global___CloseChannelType = CloseChannelType

class _InvoiceStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _InvoiceStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_InvoiceStatus.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UNPAID: _InvoiceStatus.ValueType  # 0
    PAID: _InvoiceStatus.ValueType  # 1
    EXPIRED: _InvoiceStatus.ValueType  # 2

class InvoiceStatus(_InvoiceStatus, metaclass=_InvoiceStatusEnumTypeWrapper): ...

UNPAID: InvoiceStatus.ValueType  # 0
PAID: InvoiceStatus.ValueType  # 1
EXPIRED: InvoiceStatus.ValueType  # 2
global___InvoiceStatus = InvoiceStatus

class _PayStatus:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _PayStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_PayStatus.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    PENDING: _PayStatus.ValueType  # 0
    COMPLETE: _PayStatus.ValueType  # 1
    FAILED: _PayStatus.ValueType  # 2

class PayStatus(_PayStatus, metaclass=_PayStatusEnumTypeWrapper): ...

PENDING: PayStatus.ValueType  # 0
COMPLETE: PayStatus.ValueType  # 1
FAILED: PayStatus.ValueType  # 2
global___PayStatus = PayStatus

@typing_extensions.final
class HsmRequestContext(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_ID_FIELD_NUMBER: builtins.int
    DBID_FIELD_NUMBER: builtins.int
    CAPABILITIES_FIELD_NUMBER: builtins.int
    node_id: builtins.bytes
    dbid: builtins.int
    capabilities: builtins.int
    def __init__(
        self,
        *,
        node_id: builtins.bytes = ...,
        dbid: builtins.int = ...,
        capabilities: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["capabilities", b"capabilities", "dbid", b"dbid", "node_id", b"node_id"]) -> None: ...

global___HsmRequestContext = HsmRequestContext

@typing_extensions.final
class HsmResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REQUEST_ID_FIELD_NUMBER: builtins.int
    RAW_FIELD_NUMBER: builtins.int
    SIGNER_STATE_FIELD_NUMBER: builtins.int
    request_id: builtins.int
    raw: builtins.bytes
    @property
    def signer_state(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SignerStateEntry]:
        """A list of updated key-value-version tuples that is to be
        merged into the state tracked by the plugin.
        """
    def __init__(
        self,
        *,
        request_id: builtins.int = ...,
        raw: builtins.bytes = ...,
        signer_state: collections.abc.Iterable[global___SignerStateEntry] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["raw", b"raw", "request_id", b"request_id", "signer_state", b"signer_state"]) -> None: ...

global___HsmResponse = HsmResponse

@typing_extensions.final
class HsmRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REQUEST_ID_FIELD_NUMBER: builtins.int
    CONTEXT_FIELD_NUMBER: builtins.int
    RAW_FIELD_NUMBER: builtins.int
    SIGNER_STATE_FIELD_NUMBER: builtins.int
    REQUESTS_FIELD_NUMBER: builtins.int
    request_id: builtins.int
    @property
    def context(self) -> global___HsmRequestContext: ...
    raw: builtins.bytes
    @property
    def signer_state(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SignerStateEntry]:
        """A list of key-value-version tuples that the signer should
        use to update its internal state.
        """
    @property
    def requests(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PendingRequest]:
        """Currently active requests that are used to justify changes
        in state.
        """
    def __init__(
        self,
        *,
        request_id: builtins.int = ...,
        context: global___HsmRequestContext | None = ...,
        raw: builtins.bytes = ...,
        signer_state: collections.abc.Iterable[global___SignerStateEntry] | None = ...,
        requests: collections.abc.Iterable[global___PendingRequest] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["context", b"context"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["context", b"context", "raw", b"raw", "request_id", b"request_id", "requests", b"requests", "signer_state", b"signer_state"]) -> None: ...

global___HsmRequest = HsmRequest

@typing_extensions.final
class Empty(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___Empty = Empty

@typing_extensions.final
class Address(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    ADDR_FIELD_NUMBER: builtins.int
    PORT_FIELD_NUMBER: builtins.int
    type: global___NetAddressType.ValueType
    addr: builtins.str
    port: builtins.int
    def __init__(
        self,
        *,
        type: global___NetAddressType.ValueType = ...,
        addr: builtins.str = ...,
        port: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["addr", b"addr", "port", b"port", "type", b"type"]) -> None: ...

global___Address = Address

@typing_extensions.final
class GetInfoRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___GetInfoRequest = GetInfoRequest

@typing_extensions.final
class GetInfoResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_ID_FIELD_NUMBER: builtins.int
    ALIAS_FIELD_NUMBER: builtins.int
    COLOR_FIELD_NUMBER: builtins.int
    NUM_PEERS_FIELD_NUMBER: builtins.int
    ADDRESSES_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    BLOCKHEIGHT_FIELD_NUMBER: builtins.int
    NETWORK_FIELD_NUMBER: builtins.int
    node_id: builtins.bytes
    alias: builtins.str
    color: builtins.bytes
    num_peers: builtins.int
    @property
    def addresses(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Address]: ...
    version: builtins.str
    blockheight: builtins.int
    network: builtins.str
    def __init__(
        self,
        *,
        node_id: builtins.bytes = ...,
        alias: builtins.str = ...,
        color: builtins.bytes = ...,
        num_peers: builtins.int = ...,
        addresses: collections.abc.Iterable[global___Address] | None = ...,
        version: builtins.str = ...,
        blockheight: builtins.int = ...,
        network: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["addresses", b"addresses", "alias", b"alias", "blockheight", b"blockheight", "color", b"color", "network", b"network", "node_id", b"node_id", "num_peers", b"num_peers", "version", b"version"]) -> None: ...

global___GetInfoResponse = GetInfoResponse

@typing_extensions.final
class StopRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___StopRequest = StopRequest

@typing_extensions.final
class StopResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___StopResponse = StopResponse

@typing_extensions.final
class ConnectRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_ID_FIELD_NUMBER: builtins.int
    ADDR_FIELD_NUMBER: builtins.int
    node_id: builtins.str
    addr: builtins.str
    def __init__(
        self,
        *,
        node_id: builtins.str = ...,
        addr: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["addr", b"addr", "node_id", b"node_id"]) -> None: ...

global___ConnectRequest = ConnectRequest

@typing_extensions.final
class ConnectResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_ID_FIELD_NUMBER: builtins.int
    FEATURES_FIELD_NUMBER: builtins.int
    node_id: builtins.str
    features: builtins.str
    def __init__(
        self,
        *,
        node_id: builtins.str = ...,
        features: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["features", b"features", "node_id", b"node_id"]) -> None: ...

global___ConnectResponse = ConnectResponse

@typing_extensions.final
class ListPeersRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_ID_FIELD_NUMBER: builtins.int
    node_id: builtins.str
    def __init__(
        self,
        *,
        node_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["node_id", b"node_id"]) -> None: ...

global___ListPeersRequest = ListPeersRequest

@typing_extensions.final
class Htlc(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DIRECTION_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    EXPIRY_FIELD_NUMBER: builtins.int
    PAYMENT_HASH_FIELD_NUMBER: builtins.int
    STATE_FIELD_NUMBER: builtins.int
    LOCAL_TRIMMED_FIELD_NUMBER: builtins.int
    direction: builtins.str
    id: builtins.int
    amount: builtins.str
    expiry: builtins.int
    payment_hash: builtins.str
    state: builtins.str
    local_trimmed: builtins.bool
    def __init__(
        self,
        *,
        direction: builtins.str = ...,
        id: builtins.int = ...,
        amount: builtins.str = ...,
        expiry: builtins.int = ...,
        payment_hash: builtins.str = ...,
        state: builtins.str = ...,
        local_trimmed: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["amount", b"amount", "direction", b"direction", "expiry", b"expiry", "id", b"id", "local_trimmed", b"local_trimmed", "payment_hash", b"payment_hash", "state", b"state"]) -> None: ...

global___Htlc = Htlc

@typing_extensions.final
class Aliases(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LOCAL_FIELD_NUMBER: builtins.int
    REMOTE_FIELD_NUMBER: builtins.int
    local: builtins.str
    remote: builtins.str
    def __init__(
        self,
        *,
        local: builtins.str = ...,
        remote: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["local", b"local", "remote", b"remote"]) -> None: ...

global___Aliases = Aliases

@typing_extensions.final
class Channel(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STATE_FIELD_NUMBER: builtins.int
    OWNER_FIELD_NUMBER: builtins.int
    ALIAS_FIELD_NUMBER: builtins.int
    SHORT_CHANNEL_ID_FIELD_NUMBER: builtins.int
    DIRECTION_FIELD_NUMBER: builtins.int
    CHANNEL_ID_FIELD_NUMBER: builtins.int
    FUNDING_TXID_FIELD_NUMBER: builtins.int
    CLOSE_TO_ADDR_FIELD_NUMBER: builtins.int
    CLOSE_TO_FIELD_NUMBER: builtins.int
    PRIVATE_FIELD_NUMBER: builtins.int
    TOTAL_FIELD_NUMBER: builtins.int
    DUST_LIMIT_FIELD_NUMBER: builtins.int
    SPENDABLE_FIELD_NUMBER: builtins.int
    RECEIVABLE_FIELD_NUMBER: builtins.int
    THEIR_TO_SELF_DELAY_FIELD_NUMBER: builtins.int
    OUR_TO_SELF_DELAY_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    HTLCS_FIELD_NUMBER: builtins.int
    state: builtins.str
    owner: builtins.str
    @property
    def alias(self) -> global___Aliases: ...
    short_channel_id: builtins.str
    direction: builtins.int
    channel_id: builtins.str
    funding_txid: builtins.str
    close_to_addr: builtins.str
    close_to: builtins.str
    private: builtins.bool
    total: builtins.str
    dust_limit: builtins.str
    spendable: builtins.str
    receivable: builtins.str
    their_to_self_delay: builtins.int
    our_to_self_delay: builtins.int
    @property
    def status(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def htlcs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Htlc]: ...
    def __init__(
        self,
        *,
        state: builtins.str = ...,
        owner: builtins.str = ...,
        alias: global___Aliases | None = ...,
        short_channel_id: builtins.str = ...,
        direction: builtins.int = ...,
        channel_id: builtins.str = ...,
        funding_txid: builtins.str = ...,
        close_to_addr: builtins.str = ...,
        close_to: builtins.str = ...,
        private: builtins.bool = ...,
        total: builtins.str = ...,
        dust_limit: builtins.str = ...,
        spendable: builtins.str = ...,
        receivable: builtins.str = ...,
        their_to_self_delay: builtins.int = ...,
        our_to_self_delay: builtins.int = ...,
        status: collections.abc.Iterable[builtins.str] | None = ...,
        htlcs: collections.abc.Iterable[global___Htlc] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["alias", b"alias"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["alias", b"alias", "channel_id", b"channel_id", "close_to", b"close_to", "close_to_addr", b"close_to_addr", "direction", b"direction", "dust_limit", b"dust_limit", "funding_txid", b"funding_txid", "htlcs", b"htlcs", "our_to_self_delay", b"our_to_self_delay", "owner", b"owner", "private", b"private", "receivable", b"receivable", "short_channel_id", b"short_channel_id", "spendable", b"spendable", "state", b"state", "status", b"status", "their_to_self_delay", b"their_to_self_delay", "total", b"total"]) -> None: ...

global___Channel = Channel

@typing_extensions.final
class Peer(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    CONNECTED_FIELD_NUMBER: builtins.int
    ADDRESSES_FIELD_NUMBER: builtins.int
    FEATURES_FIELD_NUMBER: builtins.int
    CHANNELS_FIELD_NUMBER: builtins.int
    id: builtins.bytes
    connected: builtins.bool
    @property
    def addresses(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Address]: ...
    features: builtins.str
    @property
    def channels(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Channel]: ...
    def __init__(
        self,
        *,
        id: builtins.bytes = ...,
        connected: builtins.bool = ...,
        addresses: collections.abc.Iterable[global___Address] | None = ...,
        features: builtins.str = ...,
        channels: collections.abc.Iterable[global___Channel] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["addresses", b"addresses", "channels", b"channels", "connected", b"connected", "features", b"features", "id", b"id"]) -> None: ...

global___Peer = Peer

@typing_extensions.final
class ListPeersResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PEERS_FIELD_NUMBER: builtins.int
    @property
    def peers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Peer]: ...
    def __init__(
        self,
        *,
        peers: collections.abc.Iterable[global___Peer] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["peers", b"peers"]) -> None: ...

global___ListPeersResponse = ListPeersResponse

@typing_extensions.final
class DisconnectRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_ID_FIELD_NUMBER: builtins.int
    FORCE_FIELD_NUMBER: builtins.int
    node_id: builtins.str
    force: builtins.bool
    def __init__(
        self,
        *,
        node_id: builtins.str = ...,
        force: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["force", b"force", "node_id", b"node_id"]) -> None: ...

global___DisconnectRequest = DisconnectRequest

@typing_extensions.final
class DisconnectResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___DisconnectResponse = DisconnectResponse

@typing_extensions.final
class NewAddrRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ADDRESS_TYPE_FIELD_NUMBER: builtins.int
    address_type: global___BtcAddressType.ValueType
    def __init__(
        self,
        *,
        address_type: global___BtcAddressType.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["address_type", b"address_type"]) -> None: ...

global___NewAddrRequest = NewAddrRequest

@typing_extensions.final
class NewAddrResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ADDRESS_TYPE_FIELD_NUMBER: builtins.int
    ADDRESS_FIELD_NUMBER: builtins.int
    address_type: global___BtcAddressType.ValueType
    address: builtins.str
    def __init__(
        self,
        *,
        address_type: global___BtcAddressType.ValueType = ...,
        address: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["address", b"address", "address_type", b"address_type"]) -> None: ...

global___NewAddrResponse = NewAddrResponse

@typing_extensions.final
class ListFundsRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MINCONF_FIELD_NUMBER: builtins.int
    @property
    def minconf(self) -> global___Confirmation: ...
    def __init__(
        self,
        *,
        minconf: global___Confirmation | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["minconf", b"minconf"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["minconf", b"minconf"]) -> None: ...

global___ListFundsRequest = ListFundsRequest

@typing_extensions.final
class ListFundsOutput(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    OUTPUT_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    ADDRESS_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    RESERVED_FIELD_NUMBER: builtins.int
    RESERVED_TO_BLOCK_FIELD_NUMBER: builtins.int
    @property
    def output(self) -> global___Outpoint: ...
    @property
    def amount(self) -> global___Amount: ...
    address: builtins.str
    status: global___OutputStatus.ValueType
    reserved: builtins.bool
    reserved_to_block: builtins.int
    def __init__(
        self,
        *,
        output: global___Outpoint | None = ...,
        amount: global___Amount | None = ...,
        address: builtins.str = ...,
        status: global___OutputStatus.ValueType = ...,
        reserved: builtins.bool = ...,
        reserved_to_block: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["amount", b"amount", "output", b"output"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["address", b"address", "amount", b"amount", "output", b"output", "reserved", b"reserved", "reserved_to_block", b"reserved_to_block", "status", b"status"]) -> None: ...

global___ListFundsOutput = ListFundsOutput

@typing_extensions.final
class ListFundsChannel(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PEER_ID_FIELD_NUMBER: builtins.int
    CONNECTED_FIELD_NUMBER: builtins.int
    SHORT_CHANNEL_ID_FIELD_NUMBER: builtins.int
    OUR_AMOUNT_MSAT_FIELD_NUMBER: builtins.int
    AMOUNT_MSAT_FIELD_NUMBER: builtins.int
    FUNDING_TXID_FIELD_NUMBER: builtins.int
    FUNDING_OUTPUT_FIELD_NUMBER: builtins.int
    peer_id: builtins.bytes
    connected: builtins.bool
    short_channel_id: builtins.int
    our_amount_msat: builtins.int
    amount_msat: builtins.int
    funding_txid: builtins.bytes
    funding_output: builtins.int
    def __init__(
        self,
        *,
        peer_id: builtins.bytes = ...,
        connected: builtins.bool = ...,
        short_channel_id: builtins.int = ...,
        our_amount_msat: builtins.int = ...,
        amount_msat: builtins.int = ...,
        funding_txid: builtins.bytes = ...,
        funding_output: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["amount_msat", b"amount_msat", "connected", b"connected", "funding_output", b"funding_output", "funding_txid", b"funding_txid", "our_amount_msat", b"our_amount_msat", "peer_id", b"peer_id", "short_channel_id", b"short_channel_id"]) -> None: ...

global___ListFundsChannel = ListFundsChannel

@typing_extensions.final
class ListFundsResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    OUTPUTS_FIELD_NUMBER: builtins.int
    CHANNELS_FIELD_NUMBER: builtins.int
    @property
    def outputs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ListFundsOutput]: ...
    @property
    def channels(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ListFundsChannel]: ...
    def __init__(
        self,
        *,
        outputs: collections.abc.Iterable[global___ListFundsOutput] | None = ...,
        channels: collections.abc.Iterable[global___ListFundsChannel] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["channels", b"channels", "outputs", b"outputs"]) -> None: ...

global___ListFundsResponse = ListFundsResponse

@typing_extensions.final
class Feerate(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PRESET_FIELD_NUMBER: builtins.int
    PERKW_FIELD_NUMBER: builtins.int
    PERKB_FIELD_NUMBER: builtins.int
    preset: global___FeeratePreset.ValueType
    perkw: builtins.int
    perkb: builtins.int
    def __init__(
        self,
        *,
        preset: global___FeeratePreset.ValueType = ...,
        perkw: builtins.int = ...,
        perkb: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["perkb", b"perkb", "perkw", b"perkw", "preset", b"preset", "value", b"value"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["perkb", b"perkb", "perkw", b"perkw", "preset", b"preset", "value", b"value"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["value", b"value"]) -> typing_extensions.Literal["preset", "perkw", "perkb"] | None: ...

global___Feerate = Feerate

@typing_extensions.final
class Confirmation(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BLOCKS_FIELD_NUMBER: builtins.int
    blocks: builtins.int
    def __init__(
        self,
        *,
        blocks: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["blocks", b"blocks"]) -> None: ...

global___Confirmation = Confirmation

@typing_extensions.final
class WithdrawRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESTINATION_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    FEERATE_FIELD_NUMBER: builtins.int
    MINCONF_FIELD_NUMBER: builtins.int
    UTXOS_FIELD_NUMBER: builtins.int
    destination: builtins.str
    @property
    def amount(self) -> global___Amount: ...
    @property
    def feerate(self) -> global___Feerate: ...
    @property
    def minconf(self) -> global___Confirmation: ...
    @property
    def utxos(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Outpoint]: ...
    def __init__(
        self,
        *,
        destination: builtins.str = ...,
        amount: global___Amount | None = ...,
        feerate: global___Feerate | None = ...,
        minconf: global___Confirmation | None = ...,
        utxos: collections.abc.Iterable[global___Outpoint] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["amount", b"amount", "feerate", b"feerate", "minconf", b"minconf"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["amount", b"amount", "destination", b"destination", "feerate", b"feerate", "minconf", b"minconf", "utxos", b"utxos"]) -> None: ...

global___WithdrawRequest = WithdrawRequest

@typing_extensions.final
class WithdrawResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TX_FIELD_NUMBER: builtins.int
    TXID_FIELD_NUMBER: builtins.int
    tx: builtins.bytes
    txid: builtins.bytes
    def __init__(
        self,
        *,
        tx: builtins.bytes = ...,
        txid: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["tx", b"tx", "txid", b"txid"]) -> None: ...

global___WithdrawResponse = WithdrawResponse

@typing_extensions.final
class FundChannelRequest(google.protobuf.message.Message):
    """TODO: Extract AmountOrAll into its own message
    TODO: Extract Feerate into its own message
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_ID_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    FEERATE_FIELD_NUMBER: builtins.int
    ANNOUNCE_FIELD_NUMBER: builtins.int
    MINCONF_FIELD_NUMBER: builtins.int
    CLOSE_TO_FIELD_NUMBER: builtins.int
    node_id: builtins.bytes
    @property
    def amount(self) -> global___Amount: ...
    @property
    def feerate(self) -> global___Feerate: ...
    announce: builtins.bool
    @property
    def minconf(self) -> global___Confirmation: ...
    close_to: builtins.str
    """TODO Maybe add UTXOS"""
    def __init__(
        self,
        *,
        node_id: builtins.bytes = ...,
        amount: global___Amount | None = ...,
        feerate: global___Feerate | None = ...,
        announce: builtins.bool = ...,
        minconf: global___Confirmation | None = ...,
        close_to: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["amount", b"amount", "feerate", b"feerate", "minconf", b"minconf"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["amount", b"amount", "announce", b"announce", "close_to", b"close_to", "feerate", b"feerate", "minconf", b"minconf", "node_id", b"node_id"]) -> None: ...

global___FundChannelRequest = FundChannelRequest

@typing_extensions.final
class Outpoint(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TXID_FIELD_NUMBER: builtins.int
    OUTNUM_FIELD_NUMBER: builtins.int
    txid: builtins.bytes
    outnum: builtins.int
    def __init__(
        self,
        *,
        txid: builtins.bytes = ...,
        outnum: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["outnum", b"outnum", "txid", b"txid"]) -> None: ...

global___Outpoint = Outpoint

@typing_extensions.final
class FundChannelResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TX_FIELD_NUMBER: builtins.int
    OUTPOINT_FIELD_NUMBER: builtins.int
    CHANNEL_ID_FIELD_NUMBER: builtins.int
    CLOSE_TO_FIELD_NUMBER: builtins.int
    tx: builtins.bytes
    @property
    def outpoint(self) -> global___Outpoint: ...
    channel_id: builtins.bytes
    close_to: builtins.str
    def __init__(
        self,
        *,
        tx: builtins.bytes = ...,
        outpoint: global___Outpoint | None = ...,
        channel_id: builtins.bytes = ...,
        close_to: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["outpoint", b"outpoint"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["channel_id", b"channel_id", "close_to", b"close_to", "outpoint", b"outpoint", "tx", b"tx"]) -> None: ...

global___FundChannelResponse = FundChannelResponse

@typing_extensions.final
class Timeout(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SECONDS_FIELD_NUMBER: builtins.int
    seconds: builtins.int
    def __init__(
        self,
        *,
        seconds: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["seconds", b"seconds"]) -> None: ...

global___Timeout = Timeout

@typing_extensions.final
class BitcoinAddress(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ADDRESS_FIELD_NUMBER: builtins.int
    address: builtins.str
    def __init__(
        self,
        *,
        address: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["address", b"address"]) -> None: ...

global___BitcoinAddress = BitcoinAddress

@typing_extensions.final
class CloseChannelRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_ID_FIELD_NUMBER: builtins.int
    UNILATERALTIMEOUT_FIELD_NUMBER: builtins.int
    DESTINATION_FIELD_NUMBER: builtins.int
    node_id: builtins.bytes
    @property
    def unilateraltimeout(self) -> global___Timeout: ...
    @property
    def destination(self) -> global___BitcoinAddress: ...
    def __init__(
        self,
        *,
        node_id: builtins.bytes = ...,
        unilateraltimeout: global___Timeout | None = ...,
        destination: global___BitcoinAddress | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["destination", b"destination", "unilateraltimeout", b"unilateraltimeout"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["destination", b"destination", "node_id", b"node_id", "unilateraltimeout", b"unilateraltimeout"]) -> None: ...

global___CloseChannelRequest = CloseChannelRequest

@typing_extensions.final
class CloseChannelResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CLOSE_TYPE_FIELD_NUMBER: builtins.int
    TX_FIELD_NUMBER: builtins.int
    TXID_FIELD_NUMBER: builtins.int
    close_type: global___CloseChannelType.ValueType
    tx: builtins.bytes
    txid: builtins.bytes
    def __init__(
        self,
        *,
        close_type: global___CloseChannelType.ValueType = ...,
        tx: builtins.bytes = ...,
        txid: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["close_type", b"close_type", "tx", b"tx", "txid", b"txid"]) -> None: ...

global___CloseChannelResponse = CloseChannelResponse

@typing_extensions.final
class Amount(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MILLISATOSHI_FIELD_NUMBER: builtins.int
    SATOSHI_FIELD_NUMBER: builtins.int
    BITCOIN_FIELD_NUMBER: builtins.int
    ALL_FIELD_NUMBER: builtins.int
    ANY_FIELD_NUMBER: builtins.int
    millisatoshi: builtins.int
    satoshi: builtins.int
    bitcoin: builtins.int
    all: builtins.bool
    any: builtins.bool
    def __init__(
        self,
        *,
        millisatoshi: builtins.int = ...,
        satoshi: builtins.int = ...,
        bitcoin: builtins.int = ...,
        all: builtins.bool = ...,
        any: builtins.bool = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["all", b"all", "any", b"any", "bitcoin", b"bitcoin", "millisatoshi", b"millisatoshi", "satoshi", b"satoshi", "unit", b"unit"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["all", b"all", "any", b"any", "bitcoin", b"bitcoin", "millisatoshi", b"millisatoshi", "satoshi", b"satoshi", "unit", b"unit"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["unit", b"unit"]) -> typing_extensions.Literal["millisatoshi", "satoshi", "bitcoin", "all", "any"] | None: ...

global___Amount = Amount

@typing_extensions.final
class InvoiceRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    AMOUNT_FIELD_NUMBER: builtins.int
    LABEL_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    PREIMAGE_FIELD_NUMBER: builtins.int
    @property
    def amount(self) -> global___Amount: ...
    label: builtins.str
    description: builtins.str
    preimage: builtins.bytes
    def __init__(
        self,
        *,
        amount: global___Amount | None = ...,
        label: builtins.str = ...,
        description: builtins.str = ...,
        preimage: builtins.bytes = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["amount", b"amount"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["amount", b"amount", "description", b"description", "label", b"label", "preimage", b"preimage"]) -> None: ...

global___InvoiceRequest = InvoiceRequest

@typing_extensions.final
class Invoice(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LABEL_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    RECEIVED_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    PAYMENT_TIME_FIELD_NUMBER: builtins.int
    EXPIRY_TIME_FIELD_NUMBER: builtins.int
    BOLT11_FIELD_NUMBER: builtins.int
    PAYMENT_HASH_FIELD_NUMBER: builtins.int
    PAYMENT_PREIMAGE_FIELD_NUMBER: builtins.int
    label: builtins.str
    description: builtins.str
    @property
    def amount(self) -> global___Amount: ...
    @property
    def received(self) -> global___Amount: ...
    status: global___InvoiceStatus.ValueType
    payment_time: builtins.int
    expiry_time: builtins.int
    bolt11: builtins.str
    payment_hash: builtins.bytes
    payment_preimage: builtins.bytes
    def __init__(
        self,
        *,
        label: builtins.str = ...,
        description: builtins.str = ...,
        amount: global___Amount | None = ...,
        received: global___Amount | None = ...,
        status: global___InvoiceStatus.ValueType = ...,
        payment_time: builtins.int = ...,
        expiry_time: builtins.int = ...,
        bolt11: builtins.str = ...,
        payment_hash: builtins.bytes = ...,
        payment_preimage: builtins.bytes = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["amount", b"amount", "received", b"received"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["amount", b"amount", "bolt11", b"bolt11", "description", b"description", "expiry_time", b"expiry_time", "label", b"label", "payment_hash", b"payment_hash", "payment_preimage", b"payment_preimage", "payment_time", b"payment_time", "received", b"received", "status", b"status"]) -> None: ...

global___Invoice = Invoice

@typing_extensions.final
class PayRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BOLT11_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    TIMEOUT_FIELD_NUMBER: builtins.int
    MAXFEEPERCENT_FIELD_NUMBER: builtins.int
    MAXFEE_FIELD_NUMBER: builtins.int
    bolt11: builtins.str
    @property
    def amount(self) -> global___Amount:
        """Only needed when the invoice does not specify an amount."""
    timeout: builtins.int
    """Non-zero number of seconds before we should stop retrying
    the payment and return an error.
    """
    maxfeepercent: builtins.float
    @property
    def maxfee(self) -> global___Amount: ...
    def __init__(
        self,
        *,
        bolt11: builtins.str = ...,
        amount: global___Amount | None = ...,
        timeout: builtins.int = ...,
        maxfeepercent: builtins.float = ...,
        maxfee: global___Amount | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["amount", b"amount", "maxfee", b"maxfee"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["amount", b"amount", "bolt11", b"bolt11", "maxfee", b"maxfee", "maxfeepercent", b"maxfeepercent", "timeout", b"timeout"]) -> None: ...

global___PayRequest = PayRequest

@typing_extensions.final
class Payment(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESTINATION_FIELD_NUMBER: builtins.int
    PAYMENT_HASH_FIELD_NUMBER: builtins.int
    PAYMENT_PREIMAGE_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    AMOUNT_SENT_FIELD_NUMBER: builtins.int
    BOLT11_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    COMPLETED_AT_FIELD_NUMBER: builtins.int
    destination: builtins.bytes
    payment_hash: builtins.bytes
    payment_preimage: builtins.bytes
    status: global___PayStatus.ValueType
    @property
    def amount(self) -> global___Amount: ...
    @property
    def amount_sent(self) -> global___Amount: ...
    bolt11: builtins.str
    created_at: builtins.float
    """UTC Unix timestamp of the time the invoice was created."""
    completed_at: builtins.int
    """UTC Unix timestamp of the time the payment was completed
    (successfully or failed). 0 if not completed yet.
    """
    def __init__(
        self,
        *,
        destination: builtins.bytes = ...,
        payment_hash: builtins.bytes = ...,
        payment_preimage: builtins.bytes = ...,
        status: global___PayStatus.ValueType = ...,
        amount: global___Amount | None = ...,
        amount_sent: global___Amount | None = ...,
        bolt11: builtins.str = ...,
        created_at: builtins.float = ...,
        completed_at: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["amount", b"amount", "amount_sent", b"amount_sent"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["amount", b"amount", "amount_sent", b"amount_sent", "bolt11", b"bolt11", "completed_at", b"completed_at", "created_at", b"created_at", "destination", b"destination", "payment_hash", b"payment_hash", "payment_preimage", b"payment_preimage", "status", b"status"]) -> None: ...

global___Payment = Payment

@typing_extensions.final
class PaymentIdentifier(google.protobuf.message.Message):
    """A payment identifier is a way to reference a unique payment, either
    by its bolt11 string or just the payment hash. Only one of the two
    may be provided at once, since having multiple ones may conflict
    with each other.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BOLT11_FIELD_NUMBER: builtins.int
    PAYMENT_HASH_FIELD_NUMBER: builtins.int
    bolt11: builtins.str
    payment_hash: builtins.bytes
    def __init__(
        self,
        *,
        bolt11: builtins.str = ...,
        payment_hash: builtins.bytes = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["bolt11", b"bolt11", "id", b"id", "payment_hash", b"payment_hash"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["bolt11", b"bolt11", "id", b"id", "payment_hash", b"payment_hash"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["id", b"id"]) -> typing_extensions.Literal["bolt11", "payment_hash"] | None: ...

global___PaymentIdentifier = PaymentIdentifier

@typing_extensions.final
class ListPaymentsRequest(google.protobuf.message.Message):
    """Request a list of payments that this node has performed. Optionally
    the query can be narrowed to a single payment by providing an
    identifier.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    IDENTIFIER_FIELD_NUMBER: builtins.int
    @property
    def identifier(self) -> global___PaymentIdentifier: ...
    def __init__(
        self,
        *,
        identifier: global___PaymentIdentifier | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["identifier", b"identifier"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["identifier", b"identifier"]) -> None: ...

global___ListPaymentsRequest = ListPaymentsRequest

@typing_extensions.final
class ListPaymentsResponse(google.protobuf.message.Message):
    """The response matching `ListPaymentRequest`. It returns a list of
    PayResponses, i.e., the same format as `Pay` returned its result.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PAYMENTS_FIELD_NUMBER: builtins.int
    @property
    def payments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Payment]: ...
    def __init__(
        self,
        *,
        payments: collections.abc.Iterable[global___Payment] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["payments", b"payments"]) -> None: ...

global___ListPaymentsResponse = ListPaymentsResponse

@typing_extensions.final
class InvoiceIdentifier(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LABEL_FIELD_NUMBER: builtins.int
    INVSTRING_FIELD_NUMBER: builtins.int
    PAYMENT_HASH_FIELD_NUMBER: builtins.int
    label: builtins.str
    invstring: builtins.str
    payment_hash: builtins.bytes
    def __init__(
        self,
        *,
        label: builtins.str = ...,
        invstring: builtins.str = ...,
        payment_hash: builtins.bytes = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["id", b"id", "invstring", b"invstring", "label", b"label", "payment_hash", b"payment_hash"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["id", b"id", "invstring", b"invstring", "label", b"label", "payment_hash", b"payment_hash"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["id", b"id"]) -> typing_extensions.Literal["label", "invstring", "payment_hash"] | None: ...

global___InvoiceIdentifier = InvoiceIdentifier

@typing_extensions.final
class ListInvoicesRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    IDENTIFIER_FIELD_NUMBER: builtins.int
    @property
    def identifier(self) -> global___InvoiceIdentifier: ...
    def __init__(
        self,
        *,
        identifier: global___InvoiceIdentifier | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["identifier", b"identifier"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["identifier", b"identifier"]) -> None: ...

global___ListInvoicesRequest = ListInvoicesRequest

@typing_extensions.final
class StreamIncomingFilter(google.protobuf.message.Message):
    """Options to stream_incoming to specify what to stream."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___StreamIncomingFilter = StreamIncomingFilter

@typing_extensions.final
class ListInvoicesResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    INVOICES_FIELD_NUMBER: builtins.int
    @property
    def invoices(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Invoice]: ...
    def __init__(
        self,
        *,
        invoices: collections.abc.Iterable[global___Invoice] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["invoices", b"invoices"]) -> None: ...

global___ListInvoicesResponse = ListInvoicesResponse

@typing_extensions.final
class TlvField(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TYPE_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    type: builtins.int
    value: builtins.bytes
    """length is implied since the value field carries its own
    length here.
    """
    def __init__(
        self,
        *,
        type: builtins.int = ...,
        value: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["type", b"type", "value", b"value"]) -> None: ...

global___TlvField = TlvField

@typing_extensions.final
class OffChainPayment(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LABEL_FIELD_NUMBER: builtins.int
    PREIMAGE_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    EXTRATLVS_FIELD_NUMBER: builtins.int
    PAYMENT_HASH_FIELD_NUMBER: builtins.int
    BOLT11_FIELD_NUMBER: builtins.int
    label: builtins.str
    preimage: builtins.bytes
    @property
    def amount(self) -> global___Amount: ...
    @property
    def extratlvs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TlvField]: ...
    payment_hash: builtins.bytes
    bolt11: builtins.str
    def __init__(
        self,
        *,
        label: builtins.str = ...,
        preimage: builtins.bytes = ...,
        amount: global___Amount | None = ...,
        extratlvs: collections.abc.Iterable[global___TlvField] | None = ...,
        payment_hash: builtins.bytes = ...,
        bolt11: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["amount", b"amount"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["amount", b"amount", "bolt11", b"bolt11", "extratlvs", b"extratlvs", "label", b"label", "payment_hash", b"payment_hash", "preimage", b"preimage"]) -> None: ...

global___OffChainPayment = OffChainPayment

@typing_extensions.final
class IncomingPayment(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    OFFCHAIN_FIELD_NUMBER: builtins.int
    @property
    def offchain(self) -> global___OffChainPayment: ...
    def __init__(
        self,
        *,
        offchain: global___OffChainPayment | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["details", b"details", "offchain", b"offchain"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["details", b"details", "offchain", b"offchain"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["details", b"details"]) -> typing_extensions.Literal["offchain"] | None: ...

global___IncomingPayment = IncomingPayment

@typing_extensions.final
class RoutehintHop(google.protobuf.message.Message):
    """A single hop in a Routehint"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_ID_FIELD_NUMBER: builtins.int
    SHORT_CHANNEL_ID_FIELD_NUMBER: builtins.int
    FEE_BASE_FIELD_NUMBER: builtins.int
    FEE_PROP_FIELD_NUMBER: builtins.int
    CLTV_EXPIRY_DELTA_FIELD_NUMBER: builtins.int
    node_id: builtins.bytes
    short_channel_id: builtins.str
    fee_base: builtins.int
    fee_prop: builtins.int
    cltv_expiry_delta: builtins.int
    def __init__(
        self,
        *,
        node_id: builtins.bytes = ...,
        short_channel_id: builtins.str = ...,
        fee_base: builtins.int = ...,
        fee_prop: builtins.int = ...,
        cltv_expiry_delta: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["cltv_expiry_delta", b"cltv_expiry_delta", "fee_base", b"fee_base", "fee_prop", b"fee_prop", "node_id", b"node_id", "short_channel_id", b"short_channel_id"]) -> None: ...

global___RoutehintHop = RoutehintHop

@typing_extensions.final
class Routehint(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HOPS_FIELD_NUMBER: builtins.int
    @property
    def hops(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RoutehintHop]: ...
    def __init__(
        self,
        *,
        hops: collections.abc.Iterable[global___RoutehintHop] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["hops", b"hops"]) -> None: ...

global___Routehint = Routehint

@typing_extensions.final
class KeysendRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NODE_ID_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    LABEL_FIELD_NUMBER: builtins.int
    ROUTEHINTS_FIELD_NUMBER: builtins.int
    EXTRATLVS_FIELD_NUMBER: builtins.int
    node_id: builtins.bytes
    @property
    def amount(self) -> global___Amount: ...
    label: builtins.str
    @property
    def routehints(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Routehint]: ...
    @property
    def extratlvs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___TlvField]: ...
    def __init__(
        self,
        *,
        node_id: builtins.bytes = ...,
        amount: global___Amount | None = ...,
        label: builtins.str = ...,
        routehints: collections.abc.Iterable[global___Routehint] | None = ...,
        extratlvs: collections.abc.Iterable[global___TlvField] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["amount", b"amount"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["amount", b"amount", "extratlvs", b"extratlvs", "label", b"label", "node_id", b"node_id", "routehints", b"routehints"]) -> None: ...

global___KeysendRequest = KeysendRequest

@typing_extensions.final
class StreamLogRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___StreamLogRequest = StreamLogRequest

@typing_extensions.final
class LogEntry(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    LINE_FIELD_NUMBER: builtins.int
    line: builtins.str
    def __init__(
        self,
        *,
        line: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["line", b"line"]) -> None: ...

global___LogEntry = LogEntry

@typing_extensions.final
class SignerStateEntry(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VERSION_FIELD_NUMBER: builtins.int
    KEY_FIELD_NUMBER: builtins.int
    VALUE_FIELD_NUMBER: builtins.int
    version: builtins.int
    key: builtins.str
    value: builtins.bytes
    def __init__(
        self,
        *,
        version: builtins.int = ...,
        key: builtins.str = ...,
        value: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value", "version", b"version"]) -> None: ...

global___SignerStateEntry = SignerStateEntry

@typing_extensions.final
class PendingRequest(google.protobuf.message.Message):
    """This represents a grpc request that is currently pending, along
    with the pubkey of the client issuing the request and a matching
    signature. This allows the signer to verify that the state changes
    implied in a signature request correspond to authentic grpc
    commands, and were not injected somewhere along the way.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REQUEST_FIELD_NUMBER: builtins.int
    URI_FIELD_NUMBER: builtins.int
    SIGNATURE_FIELD_NUMBER: builtins.int
    PUBKEY_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    RUNE_FIELD_NUMBER: builtins.int
    request: builtins.bytes
    uri: builtins.str
    signature: builtins.bytes
    pubkey: builtins.bytes
    timestamp: builtins.int
    rune: builtins.bytes
    def __init__(
        self,
        *,
        request: builtins.bytes = ...,
        uri: builtins.str = ...,
        signature: builtins.bytes = ...,
        pubkey: builtins.bytes = ...,
        timestamp: builtins.int = ...,
        rune: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["pubkey", b"pubkey", "request", b"request", "rune", b"rune", "signature", b"signature", "timestamp", b"timestamp", "uri", b"uri"]) -> None: ...

global___PendingRequest = PendingRequest

@typing_extensions.final
class NodeConfig(google.protobuf.message.Message):
    """The `NodeConfig` is used to pass startup parameters to the
    node. The `gl-plugin` will look for a file in its directory to load
    these values from. Please refer to the individual fields to learn
    what they do.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    STARTUPMSGS_FIELD_NUMBER: builtins.int
    @property
    def startupmsgs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___StartupMessage]:
        """In order to start without a signer attached we need to
        stash a couple of canned messages that we'd otherwise ask
        from the signer. These are just request-response tuples
        that we use to match and reply against incoming requests.
        """
    def __init__(
        self,
        *,
        startupmsgs: collections.abc.Iterable[global___StartupMessage] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["startupmsgs", b"startupmsgs"]) -> None: ...

global___NodeConfig = NodeConfig

@typing_extensions.final
class GlConfig(google.protobuf.message.Message):
    """The `GlConfig` is used to pass greenlight-specific startup parameters
    to the node. The `gl-plugin` will look for a serialized config object in 
    the node's datastore to load these values from. Please refer to the 
    individual fields to learn what they do.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CLOSE_TO_ADDR_FIELD_NUMBER: builtins.int
    close_to_addr: builtins.str
    def __init__(
        self,
        *,
        close_to_addr: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["close_to_addr", b"close_to_addr"]) -> None: ...

global___GlConfig = GlConfig

@typing_extensions.final
class StartupMessage(google.protobuf.message.Message):
    """A message that we know will be requested by `lightningd` at
    startup, and that we stash a response to on the scheduler. This
    allows the scheduler to start a node without requiring the signer
    to connect first. Messages are stored in full, including type
    prefix, but without the length prefix.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REQUEST_FIELD_NUMBER: builtins.int
    RESPONSE_FIELD_NUMBER: builtins.int
    request: builtins.bytes
    response: builtins.bytes
    def __init__(
        self,
        *,
        request: builtins.bytes = ...,
        response: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["request", b"request", "response", b"response"]) -> None: ...

global___StartupMessage = StartupMessage

@typing_extensions.final
class StreamCustommsgRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___StreamCustommsgRequest = StreamCustommsgRequest

@typing_extensions.final
class Custommsg(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PEER_ID_FIELD_NUMBER: builtins.int
    PAYLOAD_FIELD_NUMBER: builtins.int
    peer_id: builtins.bytes
    payload: builtins.bytes
    def __init__(
        self,
        *,
        peer_id: builtins.bytes = ...,
        payload: builtins.bytes = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["payload", b"payload", "peer_id", b"peer_id"]) -> None: ...

global___Custommsg = Custommsg
