"""
@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.message
import typing
import typing_extensions

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

class Resource(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    MAX_CAPACITY_FIELD_NUMBER: builtins.int
    MIN_CAPACITY_FIELD_NUMBER: builtins.int
    RENEWABLE_FIELD_NUMBER: builtins.int
    UNIT_COST_FIELD_NUMBER: builtins.int
    max_capacity: builtins.int = ...
    min_capacity: builtins.int = ...
    renewable: builtins.bool = ...
    unit_cost: builtins.int = ...

    def __init__(self,
        *,
        max_capacity : builtins.int = ...,
        min_capacity : builtins.int = ...,
        renewable : builtins.bool = ...,
        unit_cost : builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"max_capacity",b"max_capacity",u"min_capacity",b"min_capacity",u"renewable",b"renewable",u"unit_cost",b"unit_cost"]) -> None: ...
global___Resource = Resource

class Recipe(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    DURATION_FIELD_NUMBER: builtins.int
    DEMANDS_FIELD_NUMBER: builtins.int
    RESOURCES_FIELD_NUMBER: builtins.int
    duration: builtins.int = ...
    demands: google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int] = ...
    resources: google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int] = ...

    def __init__(self,
        *,
        duration : builtins.int = ...,
        demands : typing.Optional[typing.Iterable[builtins.int]] = ...,
        resources : typing.Optional[typing.Iterable[builtins.int]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"demands",b"demands",u"duration",b"duration",u"resources",b"resources"]) -> None: ...
global___Recipe = Recipe

class PerRecipeDelays(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    MIN_DELAYS_FIELD_NUMBER: builtins.int
    min_delays: google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int] = ...

    def __init__(self,
        *,
        min_delays : typing.Optional[typing.Iterable[builtins.int]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"min_delays",b"min_delays"]) -> None: ...
global___PerRecipeDelays = PerRecipeDelays

class PerSuccessorDelays(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RECIPE_DELAYS_FIELD_NUMBER: builtins.int

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

    def __init__(self,
        *,
        recipe_delays : typing.Optional[typing.Iterable[global___PerRecipeDelays]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"recipe_delays",b"recipe_delays"]) -> None: ...
global___PerSuccessorDelays = PerSuccessorDelays

class Task(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    SUCCESSORS_FIELD_NUMBER: builtins.int
    RECIPES_FIELD_NUMBER: builtins.int
    SUCCESSOR_DELAYS_FIELD_NUMBER: builtins.int
    successors: google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int] = ...

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

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

    def __init__(self,
        *,
        successors : typing.Optional[typing.Iterable[builtins.int]] = ...,
        recipes : typing.Optional[typing.Iterable[global___Recipe]] = ...,
        successor_delays : typing.Optional[typing.Iterable[global___PerSuccessorDelays]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"recipes",b"recipes",u"successor_delays",b"successor_delays",u"successors",b"successors"]) -> None: ...
global___Task = Task

class RcpspProblem(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor = ...
    RESOURCES_FIELD_NUMBER: builtins.int
    TASKS_FIELD_NUMBER: builtins.int
    IS_CONSUMER_PRODUCER_FIELD_NUMBER: builtins.int
    IS_RESOURCE_INVESTMENT_FIELD_NUMBER: builtins.int
    IS_RCPSP_MAX_FIELD_NUMBER: builtins.int
    DEADLINE_FIELD_NUMBER: builtins.int
    HORIZON_FIELD_NUMBER: builtins.int
    RELEASE_DATE_FIELD_NUMBER: builtins.int
    TARDINESS_COST_FIELD_NUMBER: builtins.int
    MPM_TIME_FIELD_NUMBER: builtins.int
    SEED_FIELD_NUMBER: builtins.int
    BASEDATA_FIELD_NUMBER: builtins.int
    DUE_DATE_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    is_consumer_producer: builtins.bool = ...
    is_resource_investment: builtins.bool = ...
    is_rcpsp_max: builtins.bool = ...
    deadline: builtins.int = ...
    horizon: builtins.int = ...
    release_date: builtins.int = ...
    tardiness_cost: builtins.int = ...
    mpm_time: builtins.int = ...
    seed: builtins.int = ...
    basedata: typing.Text = ...
    due_date: builtins.int = ...
    name: typing.Text = ...

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

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

    def __init__(self,
        *,
        resources : typing.Optional[typing.Iterable[global___Resource]] = ...,
        tasks : typing.Optional[typing.Iterable[global___Task]] = ...,
        is_consumer_producer : builtins.bool = ...,
        is_resource_investment : builtins.bool = ...,
        is_rcpsp_max : builtins.bool = ...,
        deadline : builtins.int = ...,
        horizon : builtins.int = ...,
        release_date : builtins.int = ...,
        tardiness_cost : builtins.int = ...,
        mpm_time : builtins.int = ...,
        seed : builtins.int = ...,
        basedata : typing.Text = ...,
        due_date : builtins.int = ...,
        name : typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal[u"basedata",b"basedata",u"deadline",b"deadline",u"due_date",b"due_date",u"horizon",b"horizon",u"is_consumer_producer",b"is_consumer_producer",u"is_rcpsp_max",b"is_rcpsp_max",u"is_resource_investment",b"is_resource_investment",u"mpm_time",b"mpm_time",u"name",b"name",u"release_date",b"release_date",u"resources",b"resources",u"seed",b"seed",u"tardiness_cost",b"tardiness_cost",u"tasks",b"tasks"]) -> None: ...
global___RcpspProblem = RcpspProblem
