"""
@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 ommx.v1.linear_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class Quadratic(google.protobuf.message.Message):
    """Quadratic function as a COO-style sparse matrix and linear sparse vector.

    COOrdinate format, also known as triplet format, is a way to represent sparse matrices as a list of non-zero elements.
    It consists of three lists: the row indices, the column indices, and the values of the non-zero elements.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ROWS_FIELD_NUMBER: builtins.int
    COLUMNS_FIELD_NUMBER: builtins.int
    VALUES_FIELD_NUMBER: builtins.int
    LINEAR_FIELD_NUMBER: builtins.int
    @property
    def rows(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def columns(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    @property
    def values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    @property
    def linear(self) -> ommx.v1.linear_pb2.Linear: ...
    def __init__(
        self,
        *,
        rows: collections.abc.Iterable[builtins.int] | None = ...,
        columns: collections.abc.Iterable[builtins.int] | None = ...,
        values: collections.abc.Iterable[builtins.float] | None = ...,
        linear: ommx.v1.linear_pb2.Linear | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_linear", b"_linear", "linear", b"linear"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_linear", b"_linear", "columns", b"columns", "linear", b"linear", "rows", b"rows", "values", b"values"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_linear", b"_linear"]) -> typing.Literal["linear"] | None: ...

global___Quadratic = Quadratic
