"""
@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.message
import google.protobuf.timestamp_pb2
import onyx_otc.v2.common_pb2
import onyx_otc.v2.types_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class Trader(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    ACCOUNT_NAME_FIELD_NUMBER: builtins.int
    FULL_NAME_FIELD_NUMBER: builtins.int
    EMAIL_FIELD_NUMBER: builtins.int
    id: builtins.str
    account_name: builtins.str
    full_name: builtins.str
    email: builtins.str
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        account_name: builtins.str = ...,
        full_name: builtins.str = ...,
        email: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["account_name", b"account_name", "email", b"email", "full_name", b"full_name", "id", b"id"]) -> None: ...

global___Trader = Trader

@typing.final
class PriceAmount(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PRICE_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    @property
    def price(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    @property
    def amount(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    def __init__(
        self,
        *,
        price: onyx_otc.v2.common_pb2.Decimal | None = ...,
        amount: onyx_otc.v2.common_pb2.Decimal | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["amount", b"amount", "price", b"price"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["amount", b"amount", "price", b"price"]) -> None: ...

global___PriceAmount = PriceAmount

@typing.final
class Ticker(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SYMBOL_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    MID_FIELD_NUMBER: builtins.int
    FULL_PRICE_FIELD_NUMBER: builtins.int
    ACCRUED_PRICE_FIELD_NUMBER: builtins.int
    PRODUCT_SYMBOL_FIELD_NUMBER: builtins.int
    symbol: builtins.str
    product_symbol: builtins.str
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def mid(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    @property
    def full_price(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    @property
    def accrued_price(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    def __init__(
        self,
        *,
        symbol: builtins.str = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        mid: onyx_otc.v2.common_pb2.Decimal | None = ...,
        full_price: onyx_otc.v2.common_pb2.Decimal | None = ...,
        accrued_price: onyx_otc.v2.common_pb2.Decimal | None = ...,
        product_symbol: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["accrued_price", b"accrued_price", "full_price", b"full_price", "mid", b"mid", "timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["accrued_price", b"accrued_price", "full_price", b"full_price", "mid", b"mid", "product_symbol", b"product_symbol", "symbol", b"symbol", "timestamp", b"timestamp"]) -> None: ...

global___Ticker = Ticker

@typing.final
class Fee(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CURRENCY_FIELD_NUMBER: builtins.int
    SIGNED_AMOUNT_FIELD_NUMBER: builtins.int
    RATE_FIELD_NUMBER: builtins.int
    currency: builtins.str
    @property
    def signed_amount(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    @property
    def rate(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    def __init__(
        self,
        *,
        currency: builtins.str = ...,
        signed_amount: onyx_otc.v2.common_pb2.Decimal | None = ...,
        rate: onyx_otc.v2.common_pb2.Decimal | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["rate", b"rate", "signed_amount", b"signed_amount"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["currency", b"currency", "rate", b"rate", "signed_amount", b"signed_amount"]) -> None: ...

global___Fee = Fee

@typing.final
class Execution(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    ORDER_ID_FIELD_NUMBER: builtins.int
    CLIENT_ORDER_ID_FIELD_NUMBER: builtins.int
    ACCOUNT_ID_FIELD_NUMBER: builtins.int
    EXCHANGE_FIELD_NUMBER: builtins.int
    SYMBOL_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    PRICE_FIELD_NUMBER: builtins.int
    SIDE_FIELD_NUMBER: builtins.int
    CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int
    FEE_FIELD_NUMBER: builtins.int
    USER_FIELD_NUMBER: builtins.int
    id: builtins.str
    order_id: builtins.str
    client_order_id: builtins.str
    account_id: builtins.str
    exchange: onyx_otc.v2.types_pb2.Exchange.ValueType
    symbol: builtins.str
    side: onyx_otc.v2.types_pb2.Side.ValueType
    @property
    def amount(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    @property
    def price(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    @property
    def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def fee(self) -> global___Fee: ...
    @property
    def user(self) -> global___Trader: ...
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        order_id: builtins.str = ...,
        client_order_id: builtins.str = ...,
        account_id: builtins.str = ...,
        exchange: onyx_otc.v2.types_pb2.Exchange.ValueType = ...,
        symbol: builtins.str = ...,
        amount: onyx_otc.v2.common_pb2.Decimal | None = ...,
        price: onyx_otc.v2.common_pb2.Decimal | None = ...,
        side: onyx_otc.v2.types_pb2.Side.ValueType = ...,
        created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        fee: global___Fee | None = ...,
        user: global___Trader | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["amount", b"amount", "created_timestamp", b"created_timestamp", "fee", b"fee", "price", b"price", "user", b"user"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["account_id", b"account_id", "amount", b"amount", "client_order_id", b"client_order_id", "created_timestamp", b"created_timestamp", "exchange", b"exchange", "fee", b"fee", "id", b"id", "order_id", b"order_id", "price", b"price", "side", b"side", "symbol", b"symbol", "user", b"user"]) -> None: ...

global___Execution = Execution

@typing.final
class Tickers(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___Tickers = Tickers

@typing.final
class LiveWebsocket(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SOCKET_UID_FIELD_NUMBER: builtins.int
    MESSAGE_RECEIVED_FIELD_NUMBER: builtins.int
    MESSAGE_SENT_FIELD_NUMBER: builtins.int
    STARTED_FIELD_NUMBER: builtins.int
    CURRENT_TIME_FIELD_NUMBER: builtins.int
    LAST_MESSAGE_RECEIVED_FIELD_NUMBER: builtins.int
    LAST_MESSAGE_SENT_FIELD_NUMBER: builtins.int
    CLIENT_TYPE_FIELD_NUMBER: builtins.int
    REMOTE_IP_FIELD_NUMBER: builtins.int
    PROTOCOL_FIELD_NUMBER: builtins.int
    socket_uid: builtins.str
    message_received: builtins.int
    message_sent: builtins.int
    client_type: builtins.str
    remote_ip: builtins.str
    protocol: builtins.str
    @property
    def started(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def current_time(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def last_message_received(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def last_message_sent(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        socket_uid: builtins.str = ...,
        message_received: builtins.int = ...,
        message_sent: builtins.int = ...,
        started: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        current_time: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        last_message_received: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        last_message_sent: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        client_type: builtins.str = ...,
        remote_ip: builtins.str = ...,
        protocol: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["current_time", b"current_time", "last_message_received", b"last_message_received", "last_message_sent", b"last_message_sent", "started", b"started"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["client_type", b"client_type", "current_time", b"current_time", "last_message_received", b"last_message_received", "last_message_sent", b"last_message_sent", "message_received", b"message_received", "message_sent", b"message_sent", "protocol", b"protocol", "remote_ip", b"remote_ip", "socket_uid", b"socket_uid", "started", b"started"]) -> None: ...

global___LiveWebsocket = LiveWebsocket

@typing.final
class ServerInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SOCKET_UID_FIELD_NUMBER: builtins.int
    AGE_MILLIS_FIELD_NUMBER: builtins.int
    LIVE_WEBSOCKETS_FIELD_NUMBER: builtins.int
    socket_uid: builtins.str
    age_millis: builtins.int
    @property
    def live_websockets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LiveWebsocket]: ...
    def __init__(
        self,
        *,
        socket_uid: builtins.str = ...,
        age_millis: builtins.int = ...,
        live_websockets: collections.abc.Iterable[global___LiveWebsocket] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["age_millis", b"age_millis", "live_websockets", b"live_websockets", "socket_uid", b"socket_uid"]) -> None: ...

global___ServerInfo = ServerInfo

@typing.final
class OtcQuoteSide(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PRICE_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    @property
    def price(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    @property
    def amount(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    def __init__(
        self,
        *,
        price: onyx_otc.v2.common_pb2.Decimal | None = ...,
        amount: onyx_otc.v2.common_pb2.Decimal | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["amount", b"amount", "price", b"price"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["amount", b"amount", "price", b"price"]) -> None: ...

global___OtcQuoteSide = OtcQuoteSide

@typing.final
class OtcQuote(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SYMBOL_FIELD_NUMBER: builtins.int
    EXCHANGE_FIELD_NUMBER: builtins.int
    BUY_FIELD_NUMBER: builtins.int
    SELL_FIELD_NUMBER: builtins.int
    MID_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    PRODUCT_SYMBOL_FIELD_NUMBER: builtins.int
    exchange: onyx_otc.v2.types_pb2.Exchange.ValueType
    product_symbol: builtins.str
    @property
    def symbol(self) -> onyx_otc.v2.common_pb2.TradableSymbol: ...
    @property
    def buy(self) -> global___OtcQuoteSide: ...
    @property
    def sell(self) -> global___OtcQuoteSide: ...
    @property
    def mid(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        symbol: onyx_otc.v2.common_pb2.TradableSymbol | None = ...,
        exchange: onyx_otc.v2.types_pb2.Exchange.ValueType = ...,
        buy: global___OtcQuoteSide | None = ...,
        sell: global___OtcQuoteSide | None = ...,
        mid: onyx_otc.v2.common_pb2.Decimal | None = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        product_symbol: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["buy", b"buy", "mid", b"mid", "sell", b"sell", "symbol", b"symbol", "timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["buy", b"buy", "exchange", b"exchange", "mid", b"mid", "product_symbol", b"product_symbol", "sell", b"sell", "symbol", b"symbol", "timestamp", b"timestamp"]) -> None: ...

global___OtcQuote = OtcQuote

@typing.final
class OrderBookTop(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BUY_FIELD_NUMBER: builtins.int
    SELL_FIELD_NUMBER: builtins.int
    EXCHANGE_FIELD_NUMBER: builtins.int
    SYMBOL_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    PRODUCT_SYMBOL_FIELD_NUMBER: builtins.int
    exchange: onyx_otc.v2.types_pb2.Exchange.ValueType
    symbol: builtins.str
    product_symbol: builtins.str
    @property
    def buy(self) -> global___PriceAmount: ...
    @property
    def sell(self) -> global___PriceAmount: ...
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    def __init__(
        self,
        *,
        buy: global___PriceAmount | None = ...,
        sell: global___PriceAmount | None = ...,
        exchange: onyx_otc.v2.types_pb2.Exchange.ValueType = ...,
        symbol: builtins.str = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        product_symbol: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["buy", b"buy", "sell", b"sell", "timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["buy", b"buy", "exchange", b"exchange", "product_symbol", b"product_symbol", "sell", b"sell", "symbol", b"symbol", "timestamp", b"timestamp"]) -> None: ...

global___OrderBookTop = OrderBookTop

@typing.final
class OrderBookTops(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___OrderBookTops = OrderBookTops

@typing.final
class Order(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    CLIENT_ORDER_ID_FIELD_NUMBER: builtins.int
    USER_FIELD_NUMBER: builtins.int
    ACCOUNT_ID_FIELD_NUMBER: builtins.int
    EXCHANGE_FIELD_NUMBER: builtins.int
    PRODUCT_SYMBOL_FIELD_NUMBER: builtins.int
    SYMBOL_FIELD_NUMBER: builtins.int
    ORDER_TYPE_FIELD_NUMBER: builtins.int
    ORDER_STATE_FIELD_NUMBER: builtins.int
    AMOUNT_FIELD_NUMBER: builtins.int
    PRICE_FIELD_NUMBER: builtins.int
    SIDE_FIELD_NUMBER: builtins.int
    CREATED_TIMESTAMP_FIELD_NUMBER: builtins.int
    EXECUTED_AVG_PRICE_FIELD_NUMBER: builtins.int
    EXECUTED_AMOUNT_FIELD_NUMBER: builtins.int
    EXECUTIONS_FIELD_NUMBER: builtins.int
    id: builtins.str
    client_order_id: builtins.str
    account_id: builtins.str
    exchange: onyx_otc.v2.types_pb2.Exchange.ValueType
    product_symbol: builtins.str
    order_type: onyx_otc.v2.types_pb2.OrderType.ValueType
    order_state: onyx_otc.v2.types_pb2.OrderState.ValueType
    side: onyx_otc.v2.types_pb2.Side.ValueType
    @property
    def user(self) -> global___Trader: ...
    @property
    def symbol(self) -> onyx_otc.v2.common_pb2.TradableSymbol: ...
    @property
    def amount(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    @property
    def price(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    @property
    def created_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def executed_avg_price(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    @property
    def executed_amount(self) -> onyx_otc.v2.common_pb2.Decimal: ...
    @property
    def executions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Execution]: ...
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        client_order_id: builtins.str = ...,
        user: global___Trader | None = ...,
        account_id: builtins.str = ...,
        exchange: onyx_otc.v2.types_pb2.Exchange.ValueType = ...,
        product_symbol: builtins.str = ...,
        symbol: onyx_otc.v2.common_pb2.TradableSymbol | None = ...,
        order_type: onyx_otc.v2.types_pb2.OrderType.ValueType = ...,
        order_state: onyx_otc.v2.types_pb2.OrderState.ValueType = ...,
        amount: onyx_otc.v2.common_pb2.Decimal | None = ...,
        price: onyx_otc.v2.common_pb2.Decimal | None = ...,
        side: onyx_otc.v2.types_pb2.Side.ValueType = ...,
        created_timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        executed_avg_price: onyx_otc.v2.common_pb2.Decimal | None = ...,
        executed_amount: onyx_otc.v2.common_pb2.Decimal | None = ...,
        executions: collections.abc.Iterable[global___Execution] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_executed_amount", b"_executed_amount", "_executed_avg_price", b"_executed_avg_price", "_price", b"_price", "amount", b"amount", "created_timestamp", b"created_timestamp", "executed_amount", b"executed_amount", "executed_avg_price", b"executed_avg_price", "price", b"price", "symbol", b"symbol", "user", b"user"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_executed_amount", b"_executed_amount", "_executed_avg_price", b"_executed_avg_price", "_price", b"_price", "account_id", b"account_id", "amount", b"amount", "client_order_id", b"client_order_id", "created_timestamp", b"created_timestamp", "exchange", b"exchange", "executed_amount", b"executed_amount", "executed_avg_price", b"executed_avg_price", "executions", b"executions", "id", b"id", "order_state", b"order_state", "order_type", b"order_type", "price", b"price", "product_symbol", b"product_symbol", "side", b"side", "symbol", b"symbol", "user", b"user"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_executed_amount", b"_executed_amount"]) -> typing.Literal["executed_amount"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_executed_avg_price", b"_executed_avg_price"]) -> typing.Literal["executed_avg_price"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_price", b"_price"]) -> typing.Literal["price"] | None: ...

global___Order = Order

@typing.final
class ChannelMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CHANNEL_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    ORDER_FIELD_NUMBER: builtins.int
    SERVER_INFO_FIELD_NUMBER: builtins.int
    TICKERS_FIELD_NUMBER: builtins.int
    OTC_QUOTE_FIELD_NUMBER: builtins.int
    ORDER_BOOK_TOPS_FIELD_NUMBER: builtins.int
    channel: onyx_otc.v2.types_pb2.Channel.ValueType
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def order(self) -> global___Order: ...
    @property
    def server_info(self) -> global___ServerInfo: ...
    @property
    def tickers(self) -> global___Tickers: ...
    @property
    def otc_quote(self) -> global___OtcQuote: ...
    @property
    def order_book_tops(self) -> global___OrderBookTops: ...
    def __init__(
        self,
        *,
        channel: onyx_otc.v2.types_pb2.Channel.ValueType = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        order: global___Order | None = ...,
        server_info: global___ServerInfo | None = ...,
        tickers: global___Tickers | None = ...,
        otc_quote: global___OtcQuote | None = ...,
        order_book_tops: global___OrderBookTops | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["message", b"message", "order", b"order", "order_book_tops", b"order_book_tops", "otc_quote", b"otc_quote", "server_info", b"server_info", "tickers", b"tickers", "timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["channel", b"channel", "message", b"message", "order", b"order", "order_book_tops", b"order_book_tops", "otc_quote", b"otc_quote", "server_info", b"server_info", "tickers", b"tickers", "timestamp", b"timestamp"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["message", b"message"]) -> typing.Literal["order", "server_info", "tickers", "otc_quote", "order_book_tops"] | None: ...

global___ChannelMessage = ChannelMessage

@typing.final
class Subscription(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CHANNEL_FIELD_NUMBER: builtins.int
    MESSAGE_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    channel: onyx_otc.v2.types_pb2.Channel.ValueType
    message: builtins.str
    status: onyx_otc.v2.types_pb2.SubscriptionStatus.ValueType
    def __init__(
        self,
        *,
        channel: onyx_otc.v2.types_pb2.Channel.ValueType = ...,
        message: builtins.str = ...,
        status: onyx_otc.v2.types_pb2.SubscriptionStatus.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["channel", b"channel", "message", b"message", "status", b"status"]) -> None: ...

global___Subscription = Subscription

@typing.final
class AuthResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MESSAGE_FIELD_NUMBER: builtins.int
    message: builtins.str
    def __init__(
        self,
        *,
        message: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["message", b"message"]) -> None: ...

global___AuthResponse = AuthResponse

@typing.final
class OtcError(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MESSAGE_FIELD_NUMBER: builtins.int
    CODE_FIELD_NUMBER: builtins.int
    message: builtins.str
    code: onyx_otc.v2.types_pb2.OtcErrorCode.ValueType
    def __init__(
        self,
        *,
        message: builtins.str = ...,
        code: onyx_otc.v2.types_pb2.OtcErrorCode.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["code", b"code", "message", b"message"]) -> None: ...

global___OtcError = OtcError

@typing.final
class OtcResponse(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    ORDER_FIELD_NUMBER: builtins.int
    SUBSCRIPTION_FIELD_NUMBER: builtins.int
    AUTH_FIELD_NUMBER: builtins.int
    ERROR_FIELD_NUMBER: builtins.int
    id: builtins.str
    @property
    def timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def order(self) -> global___Order: ...
    @property
    def subscription(self) -> global___Subscription: ...
    @property
    def auth(self) -> global___AuthResponse: ...
    @property
    def error(self) -> global___OtcError: ...
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        timestamp: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        order: global___Order | None = ...,
        subscription: global___Subscription | None = ...,
        auth: global___AuthResponse | None = ...,
        error: global___OtcError | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["auth", b"auth", "error", b"error", "order", b"order", "response", b"response", "subscription", b"subscription", "timestamp", b"timestamp"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["auth", b"auth", "error", b"error", "id", b"id", "order", b"order", "response", b"response", "subscription", b"subscription", "timestamp", b"timestamp"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["response", b"response"]) -> typing.Literal["order", "subscription", "auth", "error"] | None: ...

global___OtcResponse = OtcResponse

@typing.final
class OtcResponseMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    OTC_RESPONSE_FIELD_NUMBER: builtins.int
    CHANNEL_MESSAGE_FIELD_NUMBER: builtins.int
    @property
    def otc_response(self) -> global___OtcResponse: ...
    @property
    def channel_message(self) -> global___ChannelMessage: ...
    def __init__(
        self,
        *,
        otc_response: global___OtcResponse | None = ...,
        channel_message: global___ChannelMessage | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["channel_message", b"channel_message", "data", b"data", "otc_response", b"otc_response"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["channel_message", b"channel_message", "data", b"data", "otc_response", b"otc_response"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["data", b"data"]) -> typing.Literal["otc_response", "channel_message"] | None: ...

global___OtcResponseMessage = OtcResponseMessage
