"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
import builtins as _builtins
import sys
import typing as _typing

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

DESCRIPTOR: _descriptor.FileDescriptor

@_typing.final
class NoiseCertificate(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    @_typing.final
    class Details(_message.Message):
        DESCRIPTOR: _descriptor.Descriptor

        SERIAL_FIELD_NUMBER: _builtins.int
        ISSUER_FIELD_NUMBER: _builtins.int
        EXPIRES_FIELD_NUMBER: _builtins.int
        SUBJECT_FIELD_NUMBER: _builtins.int
        KEY_FIELD_NUMBER: _builtins.int
        serial: _builtins.int
        issuer: _builtins.str
        expires: _builtins.int
        subject: _builtins.str
        key: _builtins.bytes
        def __init__(
            self,
            *,
            serial: _builtins.int | None = ...,
            issuer: _builtins.str | None = ...,
            expires: _builtins.int | None = ...,
            subject: _builtins.str | None = ...,
            key: _builtins.bytes | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["expires", b"expires", "issuer", b"issuer", "key", b"key", "serial", b"serial", "subject", b"subject"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["expires", b"expires", "issuer", b"issuer", "key", b"key", "serial", b"serial", "subject", b"subject"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

    DETAILS_FIELD_NUMBER: _builtins.int
    SIGNATURE_FIELD_NUMBER: _builtins.int
    details: _builtins.bytes
    signature: _builtins.bytes
    def __init__(
        self,
        *,
        details: _builtins.bytes | None = ...,
        signature: _builtins.bytes | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["details", b"details", "signature", b"signature"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["details", b"details", "signature", b"signature"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___NoiseCertificate: _TypeAlias = NoiseCertificate  # noqa: Y015

@_typing.final
class CertChain(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    @_typing.final
    class NoiseCertificate(_message.Message):
        DESCRIPTOR: _descriptor.Descriptor

        @_typing.final
        class Details(_message.Message):
            DESCRIPTOR: _descriptor.Descriptor

            SERIAL_FIELD_NUMBER: _builtins.int
            ISSUERSERIAL_FIELD_NUMBER: _builtins.int
            KEY_FIELD_NUMBER: _builtins.int
            NOTBEFORE_FIELD_NUMBER: _builtins.int
            NOTAFTER_FIELD_NUMBER: _builtins.int
            serial: _builtins.int
            issuerSerial: _builtins.int
            key: _builtins.bytes
            notBefore: _builtins.int
            notAfter: _builtins.int
            def __init__(
                self,
                *,
                serial: _builtins.int | None = ...,
                issuerSerial: _builtins.int | None = ...,
                key: _builtins.bytes | None = ...,
                notBefore: _builtins.int | None = ...,
                notAfter: _builtins.int | None = ...,
            ) -> None: ...
            _HasFieldArgType: _TypeAlias = _typing.Literal["issuerSerial", b"issuerSerial", "key", b"key", "notAfter", b"notAfter", "notBefore", b"notBefore", "serial", b"serial"]  # noqa: Y015
            def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
            _ClearFieldArgType: _TypeAlias = _typing.Literal["issuerSerial", b"issuerSerial", "key", b"key", "notAfter", b"notAfter", "notBefore", b"notBefore", "serial", b"serial"]  # noqa: Y015
            def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

        DETAILS_FIELD_NUMBER: _builtins.int
        SIGNATURE_FIELD_NUMBER: _builtins.int
        details: _builtins.bytes
        signature: _builtins.bytes
        def __init__(
            self,
            *,
            details: _builtins.bytes | None = ...,
            signature: _builtins.bytes | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["details", b"details", "signature", b"signature"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["details", b"details", "signature", b"signature"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

    LEAF_FIELD_NUMBER: _builtins.int
    INTERMEDIATE_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def leaf(self) -> Global___CertChain.NoiseCertificate: ...
    @_builtins.property
    def intermediate(self) -> Global___CertChain.NoiseCertificate: ...
    def __init__(
        self,
        *,
        leaf: Global___CertChain.NoiseCertificate | None = ...,
        intermediate: Global___CertChain.NoiseCertificate | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["intermediate", b"intermediate", "leaf", b"leaf"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["intermediate", b"intermediate", "leaf", b"leaf"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___CertChain: _TypeAlias = CertChain  # noqa: Y015
