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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor = ...

global___VectorBinPackingSolveStatus = VectorBinPackingSolveStatus
class _VectorBinPackingSolveStatus(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[VectorBinPackingSolveStatus.V], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor = ...
    VECTOR_BIN_PACKING_SOLVE_STATUS_UNSPECIFIED = VectorBinPackingSolveStatus.V(0)
    OPTIMAL = VectorBinPackingSolveStatus.V(1)
    FEASIBLE = VectorBinPackingSolveStatus.V(2)
    INFEASIBLE = VectorBinPackingSolveStatus.V(3)
class VectorBinPackingSolveStatus(metaclass=_VectorBinPackingSolveStatus):
    V = typing.NewType('V', builtins.int)
VECTOR_BIN_PACKING_SOLVE_STATUS_UNSPECIFIED = VectorBinPackingSolveStatus.V(0)
OPTIMAL = VectorBinPackingSolveStatus.V(1)
FEASIBLE = VectorBinPackingSolveStatus.V(2)
INFEASIBLE = VectorBinPackingSolveStatus.V(3)

class Item(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    NAME_FIELD_NUMBER: builtins.int
    RESOURCE_USAGE_FIELD_NUMBER: builtins.int
    NUM_COPIES_FIELD_NUMBER: builtins.int
    MAX_NUMBER_OF_COPIES_PER_BIN_FIELD_NUMBER: builtins.int
    name: typing.Text = ...
    resource_usage: google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int] = ...
    num_copies: builtins.int = ...
    max_number_of_copies_per_bin: builtins.int = ...

    def __init__(self,
        *,
        name : typing.Text = ...,
        resource_usage : typing.Optional[typing.Iterable[builtins.int]] = ...,
        num_copies : builtins.int = ...,
        max_number_of_copies_per_bin : builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"max_number_of_copies_per_bin",b"max_number_of_copies_per_bin",u"name",b"name",u"num_copies",b"num_copies",u"resource_usage",b"resource_usage"]) -> None: ...
global___Item = Item

class VectorBinPackingProblem(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    NAME_FIELD_NUMBER: builtins.int
    RESOURCE_CAPACITY_FIELD_NUMBER: builtins.int
    RESOURCE_NAME_FIELD_NUMBER: builtins.int
    ITEM_FIELD_NUMBER: builtins.int
    MAX_BINS_FIELD_NUMBER: builtins.int
    name: typing.Text = ...
    resource_capacity: google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int] = ...
    resource_name: google.protobuf.internal.containers.RepeatedScalarFieldContainer[typing.Text] = ...
    max_bins: builtins.int = ...

    @property
    def item(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Item]: ...

    def __init__(self,
        *,
        name : typing.Text = ...,
        resource_capacity : typing.Optional[typing.Iterable[builtins.int]] = ...,
        resource_name : typing.Optional[typing.Iterable[typing.Text]] = ...,
        item : typing.Optional[typing.Iterable[global___Item]] = ...,
        max_bins : builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"item",b"item",u"max_bins",b"max_bins",u"name",b"name",u"resource_capacity",b"resource_capacity",u"resource_name",b"resource_name"]) -> None: ...
global___VectorBinPackingProblem = VectorBinPackingProblem

class VectorBinPackingOneBinInSolution(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    ITEM_INDICES_FIELD_NUMBER: builtins.int
    ITEM_COPIES_FIELD_NUMBER: builtins.int
    item_indices: google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int] = ...
    item_copies: google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int] = ...

    def __init__(self,
        *,
        item_indices : typing.Optional[typing.Iterable[builtins.int]] = ...,
        item_copies : typing.Optional[typing.Iterable[builtins.int]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"item_copies",b"item_copies",u"item_indices",b"item_indices"]) -> None: ...
global___VectorBinPackingOneBinInSolution = VectorBinPackingOneBinInSolution

class VectorBinPackingSolution(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SOLVER_INFO_FIELD_NUMBER: builtins.int
    BINS_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    OBJECTIVE_VALUE_FIELD_NUMBER: builtins.int
    SOLVE_TIME_IN_SECONDS_FIELD_NUMBER: builtins.int
    ARC_FLOW_TIME_IN_SECONDS_FIELD_NUMBER: builtins.int
    solver_info: typing.Text = ...
    status: global___VectorBinPackingSolveStatus.V = ...
    objective_value: builtins.float = ...
    solve_time_in_seconds: builtins.float = ...
    arc_flow_time_in_seconds: builtins.float = ...

    @property
    def bins(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___VectorBinPackingOneBinInSolution]: ...

    def __init__(self,
        *,
        solver_info : typing.Text = ...,
        bins : typing.Optional[typing.Iterable[global___VectorBinPackingOneBinInSolution]] = ...,
        status : global___VectorBinPackingSolveStatus.V = ...,
        objective_value : builtins.float = ...,
        solve_time_in_seconds : builtins.float = ...,
        arc_flow_time_in_seconds : builtins.float = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"arc_flow_time_in_seconds",b"arc_flow_time_in_seconds",u"bins",b"bins",u"objective_value",b"objective_value",u"solve_time_in_seconds",b"solve_time_in_seconds",u"solver_info",b"solver_info",u"status",b"status"]) -> None: ...
global___VectorBinPackingSolution = VectorBinPackingSolution
