# @generated by generate_proto_mypy_stubs.py.  Do not edit!
import sys
from google.protobuf.descriptor import (
    EnumDescriptor as google___protobuf___descriptor___EnumDescriptor,
)

from google.protobuf.message import (
    Message as google___protobuf___message___Message,
)

from typing import (
    List as typing___List,
    Optional as typing___Optional,
    Text as typing___Text,
    Tuple as typing___Tuple,
    cast as typing___cast,
)

from typing_extensions import (
    Literal as typing_extensions___Literal,
)


class ConstraintSolverParameters(google___protobuf___message___Message):
    class TrailCompression(int):
        DESCRIPTOR: google___protobuf___descriptor___EnumDescriptor = ...
        @classmethod
        def Name(cls, number: int) -> str: ...
        @classmethod
        def Value(cls, name: str) -> ConstraintSolverParameters.TrailCompression: ...
        @classmethod
        def keys(cls) -> typing___List[str]: ...
        @classmethod
        def values(cls) -> typing___List[ConstraintSolverParameters.TrailCompression]: ...
        @classmethod
        def items(cls) -> typing___List[typing___Tuple[str, ConstraintSolverParameters.TrailCompression]]: ...
        NO_COMPRESSION = typing___cast(ConstraintSolverParameters.TrailCompression, 0)
        COMPRESS_WITH_ZLIB = typing___cast(ConstraintSolverParameters.TrailCompression, 1)
    NO_COMPRESSION = typing___cast(ConstraintSolverParameters.TrailCompression, 0)
    COMPRESS_WITH_ZLIB = typing___cast(ConstraintSolverParameters.TrailCompression, 1)

    compress_trail = ... # type: ConstraintSolverParameters.TrailCompression
    trail_block_size = ... # type: int
    array_split_size = ... # type: int
    store_names = ... # type: bool
    name_cast_variables = ... # type: bool
    name_all_variables = ... # type: bool
    profile_propagation = ... # type: bool
    profile_file = ... # type: typing___Text
    profile_local_search = ... # type: bool
    print_local_search_profile = ... # type: bool
    trace_propagation = ... # type: bool
    trace_search = ... # type: bool
    print_model = ... # type: bool
    print_model_stats = ... # type: bool
    print_added_constraints = ... # type: bool
    disable_solve = ... # type: bool
    use_small_table = ... # type: bool
    use_cumulative_edge_finder = ... # type: bool
    use_cumulative_time_table = ... # type: bool
    use_cumulative_time_table_sync = ... # type: bool
    use_sequence_high_demand_tasks = ... # type: bool
    use_all_possible_disjunctions = ... # type: bool
    max_edge_finder_size = ... # type: int
    diffn_use_cumulative = ... # type: bool
    use_element_rmq = ... # type: bool
    skip_locally_optimal_paths = ... # type: bool
    check_solution_period = ... # type: int

    def __init__(self,
        *,
        compress_trail : typing___Optional[ConstraintSolverParameters.TrailCompression] = None,
        trail_block_size : typing___Optional[int] = None,
        array_split_size : typing___Optional[int] = None,
        store_names : typing___Optional[bool] = None,
        name_cast_variables : typing___Optional[bool] = None,
        name_all_variables : typing___Optional[bool] = None,
        profile_propagation : typing___Optional[bool] = None,
        profile_file : typing___Optional[typing___Text] = None,
        profile_local_search : typing___Optional[bool] = None,
        print_local_search_profile : typing___Optional[bool] = None,
        trace_propagation : typing___Optional[bool] = None,
        trace_search : typing___Optional[bool] = None,
        print_model : typing___Optional[bool] = None,
        print_model_stats : typing___Optional[bool] = None,
        print_added_constraints : typing___Optional[bool] = None,
        disable_solve : typing___Optional[bool] = None,
        use_small_table : typing___Optional[bool] = None,
        use_cumulative_edge_finder : typing___Optional[bool] = None,
        use_cumulative_time_table : typing___Optional[bool] = None,
        use_cumulative_time_table_sync : typing___Optional[bool] = None,
        use_sequence_high_demand_tasks : typing___Optional[bool] = None,
        use_all_possible_disjunctions : typing___Optional[bool] = None,
        max_edge_finder_size : typing___Optional[int] = None,
        diffn_use_cumulative : typing___Optional[bool] = None,
        use_element_rmq : typing___Optional[bool] = None,
        skip_locally_optimal_paths : typing___Optional[bool] = None,
        check_solution_period : typing___Optional[int] = None,
        ) -> None: ...
    @classmethod
    def FromString(cls, s: bytes) -> ConstraintSolverParameters: ...
    def MergeFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    def CopyFrom(self, other_msg: google___protobuf___message___Message) -> None: ...
    if sys.version_info >= (3,):
        def ClearField(self, field_name: typing_extensions___Literal[u"array_split_size",u"check_solution_period",u"compress_trail",u"diffn_use_cumulative",u"disable_solve",u"max_edge_finder_size",u"name_all_variables",u"name_cast_variables",u"print_added_constraints",u"print_local_search_profile",u"print_model",u"print_model_stats",u"profile_file",u"profile_local_search",u"profile_propagation",u"skip_locally_optimal_paths",u"store_names",u"trace_propagation",u"trace_search",u"trail_block_size",u"use_all_possible_disjunctions",u"use_cumulative_edge_finder",u"use_cumulative_time_table",u"use_cumulative_time_table_sync",u"use_element_rmq",u"use_sequence_high_demand_tasks",u"use_small_table"]) -> None: ...
    else:
        def ClearField(self, field_name: typing_extensions___Literal[u"array_split_size",b"array_split_size",u"check_solution_period",b"check_solution_period",u"compress_trail",b"compress_trail",u"diffn_use_cumulative",b"diffn_use_cumulative",u"disable_solve",b"disable_solve",u"max_edge_finder_size",b"max_edge_finder_size",u"name_all_variables",b"name_all_variables",u"name_cast_variables",b"name_cast_variables",u"print_added_constraints",b"print_added_constraints",u"print_local_search_profile",b"print_local_search_profile",u"print_model",b"print_model",u"print_model_stats",b"print_model_stats",u"profile_file",b"profile_file",u"profile_local_search",b"profile_local_search",u"profile_propagation",b"profile_propagation",u"skip_locally_optimal_paths",b"skip_locally_optimal_paths",u"store_names",b"store_names",u"trace_propagation",b"trace_propagation",u"trace_search",b"trace_search",u"trail_block_size",b"trail_block_size",u"use_all_possible_disjunctions",b"use_all_possible_disjunctions",u"use_cumulative_edge_finder",b"use_cumulative_edge_finder",u"use_cumulative_time_table",b"use_cumulative_time_table",u"use_cumulative_time_table_sync",b"use_cumulative_time_table_sync",u"use_element_rmq",b"use_element_rmq",u"use_sequence_high_demand_tasks",b"use_sequence_high_demand_tasks",u"use_small_table",b"use_small_table"]) -> None: ...
