# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: anki/deck_config.proto
# Protobuf Python Version: 7.35.1
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
_runtime_version.ValidateProtobufRuntimeVersion(
    _runtime_version.Domain.PUBLIC,
    7,
    35,
    1,
    '',
    'anki/deck_config.proto'
)
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from anki import generic_pb2 as anki_dot_generic__pb2
from anki import collection_pb2 as anki_dot_collection__pb2
from anki import decks_pb2 as anki_dot_decks__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x61nki/deck_config.proto\x12\x10\x61nki.deck_config\x1a\x12\x61nki/generic.proto\x1a\x15\x61nki/collection.proto\x1a\x10\x61nki/decks.proto\"\x1c\n\x0c\x44\x65\x63kConfigId\x12\x0c\n\x04\x64\x63id\x18\x01 \x01(\x03\"8\n\x1bGetRetentionWorkloadRequest\x12\t\n\x01w\x18\x01 \x03(\x02\x12\x0e\n\x06search\x18\x02 \x01(\t\"\x96\x01\n\x1cGetRetentionWorkloadResponse\x12H\n\x05\x63osts\x18\x01 \x03(\x0b\x32\x39.anki.deck_config.GetRetentionWorkloadResponse.CostsEntry\x1a,\n\nCostsEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\"R\n\x1cGetIgnoredBeforeCountRequest\x12\"\n\x1aignore_revlogs_before_date\x18\x01 \x01(\t\x12\x0e\n\x06search\x18\x02 \x01(\t\"@\n\x1dGetIgnoredBeforeCountResponse\x12\x10\n\x08included\x18\x01 \x01(\x04\x12\r\n\x05total\x18\x02 \x01(\x04\"\x9d\x1a\n\nDeckConfig\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nmtime_secs\x18\x03 \x01(\x03\x12\x0b\n\x03usn\x18\x04 \x01(\x05\x12\x33\n\x06\x63onfig\x18\x05 \x01(\x0b\x32#.anki.deck_config.DeckConfig.Config\x1a\x9e\x19\n\x06\x43onfig\x12\x13\n\x0blearn_steps\x18\x01 \x03(\x02\x12\x15\n\rrelearn_steps\x18\x02 \x03(\x02\x12\x15\n\rfsrs_params_4\x18\x03 \x03(\x02\x12\x15\n\rfsrs_params_5\x18\x05 \x03(\x02\x12\x15\n\rfsrs_params_6\x18\x06 \x03(\x02\x12\x13\n\x0bnew_per_day\x18\t \x01(\r\x12\x17\n\x0freviews_per_day\x18\n \x01(\r\x12\x1b\n\x13new_per_day_minimum\x18# \x01(\r\x12\x14\n\x0cinitial_ease\x18\x0b \x01(\x02\x12\x17\n\x0f\x65\x61sy_multiplier\x18\x0c \x01(\x02\x12\x17\n\x0fhard_multiplier\x18\r \x01(\x02\x12\x18\n\x10lapse_multiplier\x18\x0e \x01(\x02\x12\x1b\n\x13interval_multiplier\x18\x0f \x01(\x02\x12\x1f\n\x17maximum_review_interval\x18\x10 \x01(\r\x12\x1e\n\x16minimum_lapse_interval\x18\x11 \x01(\r\x12 \n\x18graduating_interval_good\x18\x12 \x01(\r\x12 \n\x18graduating_interval_easy\x18\x13 \x01(\r\x12U\n\x15new_card_insert_order\x18\x14 \x01(\x0e\x32\x36.anki.deck_config.DeckConfig.Config.NewCardInsertOrder\x12[\n\x18new_card_gather_priority\x18\" \x01(\x0e\x32\x39.anki.deck_config.DeckConfig.Config.NewCardGatherPriority\x12Q\n\x13new_card_sort_order\x18  \x01(\x0e\x32\x34.anki.deck_config.DeckConfig.Config.NewCardSortOrder\x12>\n\x07new_mix\x18\x1e \x01(\x0e\x32-.anki.deck_config.DeckConfig.Config.ReviewMix\x12I\n\x0creview_order\x18! \x01(\x0e\x32\x33.anki.deck_config.DeckConfig.Config.ReviewCardOrder\x12L\n\x15interday_learning_mix\x18\x1f \x01(\x0e\x32-.anki.deck_config.DeckConfig.Config.ReviewMix\x12\x45\n\x0cleech_action\x18\x15 \x01(\x0e\x32/.anki.deck_config.DeckConfig.Config.LeechAction\x12\x17\n\x0fleech_threshold\x18\x16 \x01(\r\x12\x18\n\x10\x64isable_autoplay\x18\x17 \x01(\x08\x12\x1f\n\x17\x63\x61p_answer_time_to_secs\x18\x18 \x01(\r\x12\x12\n\nshow_timer\x18\x19 \x01(\x08\x12\x1c\n\x14stop_timer_on_answer\x18& \x01(\x08\x12 \n\x18seconds_to_show_question\x18) \x01(\x02\x12\x1e\n\x16seconds_to_show_answer\x18* \x01(\x02\x12K\n\x0fquestion_action\x18$ \x01(\x0e\x32\x32.anki.deck_config.DeckConfig.Config.QuestionAction\x12G\n\ranswer_action\x18+ \x01(\x0e\x32\x30.anki.deck_config.DeckConfig.Config.AnswerAction\x12\x16\n\x0ewait_for_audio\x18, \x01(\x08\x12+\n#skip_question_when_replaying_answer\x18\x1a \x01(\x08\x12\x10\n\x08\x62ury_new\x18\x1b \x01(\x08\x12\x14\n\x0c\x62ury_reviews\x18\x1c \x01(\x08\x12\x1e\n\x16\x62ury_interday_learning\x18\x1d \x01(\x08\x12\x19\n\x11\x64\x65sired_retention\x18% \x01(\x02\x12\"\n\x1aignore_revlogs_before_date\x18. \x01(\t\x12\x1d\n\x15\x65\x61sy_days_percentages\x18\x04 \x03(\x02\x12\x1c\n\x14historical_retention\x18( \x01(\x02\x12\x14\n\x0cparam_search\x18- \x01(\t\x12\x0e\n\x05other\x18\xff\x01 \x01(\x0c\"U\n\x12NewCardInsertOrder\x12\x1d\n\x19NEW_CARD_INSERT_ORDER_DUE\x10\x00\x12 \n\x1cNEW_CARD_INSERT_ORDER_RANDOM\x10\x01\"\xa2\x02\n\x15NewCardGatherPriority\x12!\n\x1dNEW_CARD_GATHER_PRIORITY_DECK\x10\x00\x12\x33\n/NEW_CARD_GATHER_PRIORITY_DECK_THEN_RANDOM_NOTES\x10\x05\x12,\n(NEW_CARD_GATHER_PRIORITY_LOWEST_POSITION\x10\x01\x12-\n)NEW_CARD_GATHER_PRIORITY_HIGHEST_POSITION\x10\x02\x12)\n%NEW_CARD_GATHER_PRIORITY_RANDOM_NOTES\x10\x03\x12)\n%NEW_CARD_GATHER_PRIORITY_RANDOM_CARDS\x10\x04\"\xdb\x01\n\x10NewCardSortOrder\x12 \n\x1cNEW_CARD_SORT_ORDER_TEMPLATE\x10\x00\x12\x1f\n\x1bNEW_CARD_SORT_ORDER_NO_SORT\x10\x01\x12,\n(NEW_CARD_SORT_ORDER_TEMPLATE_THEN_RANDOM\x10\x02\x12\x31\n-NEW_CARD_SORT_ORDER_RANDOM_NOTE_THEN_TEMPLATE\x10\x03\x12#\n\x1fNEW_CARD_SORT_ORDER_RANDOM_CARD\x10\x04\"\x87\x04\n\x0fReviewCardOrder\x12\x19\n\x15REVIEW_CARD_ORDER_DAY\x10\x00\x12#\n\x1fREVIEW_CARD_ORDER_DAY_THEN_DECK\x10\x01\x12#\n\x1fREVIEW_CARD_ORDER_DECK_THEN_DAY\x10\x02\x12)\n%REVIEW_CARD_ORDER_INTERVALS_ASCENDING\x10\x03\x12*\n&REVIEW_CARD_ORDER_INTERVALS_DESCENDING\x10\x04\x12$\n REVIEW_CARD_ORDER_EASE_ASCENDING\x10\x05\x12%\n!REVIEW_CARD_ORDER_EASE_DESCENDING\x10\x06\x12.\n*REVIEW_CARD_ORDER_RETRIEVABILITY_ASCENDING\x10\x07\x12/\n+REVIEW_CARD_ORDER_RETRIEVABILITY_DESCENDING\x10\x0b\x12*\n&REVIEW_CARD_ORDER_RELATIVE_OVERDUENESS\x10\x0c\x12\x1c\n\x18REVIEW_CARD_ORDER_RANDOM\x10\x08\x12\x1b\n\x17REVIEW_CARD_ORDER_ADDED\x10\t\x12#\n\x1fREVIEW_CARD_ORDER_REVERSE_ADDED\x10\n\"i\n\tReviewMix\x12\x1f\n\x1bREVIEW_MIX_MIX_WITH_REVIEWS\x10\x00\x12\x1c\n\x18REVIEW_MIX_AFTER_REVIEWS\x10\x01\x12\x1d\n\x19REVIEW_MIX_BEFORE_REVIEWS\x10\x02\"B\n\x0bLeechAction\x12\x18\n\x14LEECH_ACTION_SUSPEND\x10\x00\x12\x19\n\x15LEECH_ACTION_TAG_ONLY\x10\x01\"\xaa\x01\n\x0c\x41nswerAction\x12\x1b\n\x17\x41NSWER_ACTION_BURY_CARD\x10\x00\x12\x1e\n\x1a\x41NSWER_ACTION_ANSWER_AGAIN\x10\x01\x12\x1d\n\x19\x41NSWER_ACTION_ANSWER_GOOD\x10\x02\x12\x1d\n\x19\x41NSWER_ACTION_ANSWER_HARD\x10\x03\x12\x1f\n\x1b\x41NSWER_ACTION_SHOW_REMINDER\x10\x04\"T\n\x0eQuestionAction\x12\x1f\n\x1bQUESTION_ACTION_SHOW_ANSWER\x10\x00\x12!\n\x1dQUESTION_ACTION_SHOW_REMINDER\x10\x01J\x04\x08\x07\x10\tJ\x04\x08\'\x10(\"\xb9\x07\n\x14\x44\x65\x63kConfigsForUpdate\x12J\n\nall_config\x18\x01 \x03(\x0b\x32\x36.anki.deck_config.DeckConfigsForUpdate.ConfigWithExtra\x12H\n\x0c\x63urrent_deck\x18\x02 \x01(\x0b\x32\x32.anki.deck_config.DeckConfigsForUpdate.CurrentDeck\x12.\n\x08\x64\x65\x66\x61ults\x18\x03 \x01(\x0b\x32\x1c.anki.deck_config.DeckConfig\x12\x17\n\x0fschema_modified\x18\x04 \x01(\x08\x12\x1d\n\x15\x63\x61rd_state_customizer\x18\x06 \x01(\t\x12%\n\x1dnew_cards_ignore_review_limit\x18\x07 \x01(\x08\x12\x0c\n\x04\x66srs\x18\x08 \x01(\x08\x12\x19\n\x11\x66srs_health_check\x18\x0b \x01(\x08\x12\x1c\n\x14\x66srs_legacy_evaluate\x18\x0c \x01(\x08\x12\x1f\n\x17\x61pply_all_parent_limits\x18\t \x01(\x08\x12%\n\x1d\x64\x61ys_since_last_fsrs_optimize\x18\n \x01(\r\x1aR\n\x0f\x43onfigWithExtra\x12,\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1c.anki.deck_config.DeckConfig\x12\x11\n\tuse_count\x18\x02 \x01(\r\x1a\x98\x03\n\x0b\x43urrentDeck\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\tconfig_id\x18\x02 \x01(\x03\x12\x19\n\x11parent_config_ids\x18\x03 \x03(\x03\x12I\n\x06limits\x18\x04 \x01(\x0b\x32\x39.anki.deck_config.DeckConfigsForUpdate.CurrentDeck.Limits\x1a\x81\x02\n\x06Limits\x12\x13\n\x06review\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03new\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0creview_today\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x16\n\tnew_today\x18\x04 \x01(\rH\x03\x88\x01\x01\x12\x1b\n\x13review_today_active\x18\x05 \x01(\x08\x12\x18\n\x10new_today_active\x18\x06 \x01(\x08\x12\x1e\n\x11\x64\x65sired_retention\x18\x07 \x01(\x02H\x04\x88\x01\x01\x42\t\n\x07_reviewB\x06\n\x04_newB\x0f\n\r_review_todayB\x0c\n\n_new_todayB\x14\n\x12_desired_retention\"\xa8\x03\n\x18UpdateDeckConfigsRequest\x12\x16\n\x0etarget_deck_id\x18\x01 \x01(\x03\x12-\n\x07\x63onfigs\x18\x02 \x03(\x0b\x32\x1c.anki.deck_config.DeckConfig\x12\x1a\n\x12removed_config_ids\x18\x03 \x03(\x03\x12\x35\n\x04mode\x18\x04 \x01(\x0e\x32\'.anki.deck_config.UpdateDeckConfigsMode\x12\x1d\n\x15\x63\x61rd_state_customizer\x18\x05 \x01(\t\x12I\n\x06limits\x18\x06 \x01(\x0b\x32\x39.anki.deck_config.DeckConfigsForUpdate.CurrentDeck.Limits\x12%\n\x1dnew_cards_ignore_review_limit\x18\x07 \x01(\x08\x12\x0c\n\x04\x66srs\x18\x08 \x01(\x08\x12\x1f\n\x17\x61pply_all_parent_limits\x18\t \x01(\x08\x12\x17\n\x0f\x66srs_reschedule\x18\n \x01(\x08\x12\x19\n\x11\x66srs_health_check\x18\x0b \x01(\x08*\x9d\x01\n\x15UpdateDeckConfigsMode\x12#\n\x1fUPDATE_DECK_CONFIGS_MODE_NORMAL\x10\x00\x12.\n*UPDATE_DECK_CONFIGS_MODE_APPLY_TO_CHILDREN\x10\x01\x12/\n+UPDATE_DECK_CONFIGS_MODE_COMPUTE_ALL_PARAMS\x10\x02\x32\xee\x06\n\x11\x44\x65\x63kConfigService\x12Q\n\x1b\x41\x64\x64OrUpdateDeckConfigLegacy\x12\x12.anki.generic.Json\x1a\x1e.anki.deck_config.DeckConfigId\x12M\n\rGetDeckConfig\x12\x1e.anki.deck_config.DeckConfigId\x1a\x1c.anki.deck_config.DeckConfig\x12>\n\x13\x41llDeckConfigLegacy\x12\x13.anki.generic.Empty\x1a\x12.anki.generic.Json\x12I\n\x13GetDeckConfigLegacy\x12\x1e.anki.deck_config.DeckConfigId\x1a\x12.anki.generic.Json\x12>\n\x13NewDeckConfigLegacy\x12\x13.anki.generic.Empty\x1a\x12.anki.generic.Json\x12G\n\x10RemoveDeckConfig\x12\x1e.anki.deck_config.DeckConfigId\x1a\x13.anki.generic.Empty\x12U\n\x17GetDeckConfigsForUpdate\x12\x12.anki.decks.DeckId\x1a&.anki.deck_config.DeckConfigsForUpdate\x12[\n\x11UpdateDeckConfigs\x12*.anki.deck_config.UpdateDeckConfigsRequest\x1a\x1a.anki.collection.OpChanges\x12x\n\x15GetIgnoredBeforeCount\x12..anki.deck_config.GetIgnoredBeforeCountRequest\x1a/.anki.deck_config.GetIgnoredBeforeCountResponse\x12u\n\x14GetRetentionWorkload\x12-.anki.deck_config.GetRetentionWorkloadRequest\x1a..anki.deck_config.GetRetentionWorkloadResponse2\x1a\n\x18\x42\x61\x63kendDeckConfigServiceB\x0c\x42\x08\x44\x65\x63kConfP\x01\x62\x06proto3')

_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'anki.deck_config_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
  _globals['DESCRIPTOR']._loaded_options = None
  _globals['DESCRIPTOR']._serialized_options = b'B\010DeckConfP\001'
  _globals['_GETRETENTIONWORKLOADRESPONSE_COSTSENTRY']._loaded_options = None
  _globals['_GETRETENTIONWORKLOADRESPONSE_COSTSENTRY']._serialized_options = b'8\001'
  _globals['_UPDATEDECKCONFIGSMODE']._serialized_start=5240
  _globals['_UPDATEDECKCONFIGSMODE']._serialized_end=5397
  _globals['_DECKCONFIGID']._serialized_start=105
  _globals['_DECKCONFIGID']._serialized_end=133
  _globals['_GETRETENTIONWORKLOADREQUEST']._serialized_start=135
  _globals['_GETRETENTIONWORKLOADREQUEST']._serialized_end=191
  _globals['_GETRETENTIONWORKLOADRESPONSE']._serialized_start=194
  _globals['_GETRETENTIONWORKLOADRESPONSE']._serialized_end=344
  _globals['_GETRETENTIONWORKLOADRESPONSE_COSTSENTRY']._serialized_start=300
  _globals['_GETRETENTIONWORKLOADRESPONSE_COSTSENTRY']._serialized_end=344
  _globals['_GETIGNOREDBEFORECOUNTREQUEST']._serialized_start=346
  _globals['_GETIGNOREDBEFORECOUNTREQUEST']._serialized_end=428
  _globals['_GETIGNOREDBEFORECOUNTRESPONSE']._serialized_start=430
  _globals['_GETIGNOREDBEFORECOUNTRESPONSE']._serialized_end=494
  _globals['_DECKCONFIG']._serialized_start=497
  _globals['_DECKCONFIG']._serialized_end=3854
  _globals['_DECKCONFIG_CONFIG']._serialized_start=624
  _globals['_DECKCONFIG_CONFIG']._serialized_end=3854
  _globals['_DECKCONFIG_CONFIG_NEWCARDINSERTORDER']._serialized_start=2286
  _globals['_DECKCONFIG_CONFIG_NEWCARDINSERTORDER']._serialized_end=2371
  _globals['_DECKCONFIG_CONFIG_NEWCARDGATHERPRIORITY']._serialized_start=2374
  _globals['_DECKCONFIG_CONFIG_NEWCARDGATHERPRIORITY']._serialized_end=2664
  _globals['_DECKCONFIG_CONFIG_NEWCARDSORTORDER']._serialized_start=2667
  _globals['_DECKCONFIG_CONFIG_NEWCARDSORTORDER']._serialized_end=2886
  _globals['_DECKCONFIG_CONFIG_REVIEWCARDORDER']._serialized_start=2889
  _globals['_DECKCONFIG_CONFIG_REVIEWCARDORDER']._serialized_end=3408
  _globals['_DECKCONFIG_CONFIG_REVIEWMIX']._serialized_start=3410
  _globals['_DECKCONFIG_CONFIG_REVIEWMIX']._serialized_end=3515
  _globals['_DECKCONFIG_CONFIG_LEECHACTION']._serialized_start=3517
  _globals['_DECKCONFIG_CONFIG_LEECHACTION']._serialized_end=3583
  _globals['_DECKCONFIG_CONFIG_ANSWERACTION']._serialized_start=3586
  _globals['_DECKCONFIG_CONFIG_ANSWERACTION']._serialized_end=3756
  _globals['_DECKCONFIG_CONFIG_QUESTIONACTION']._serialized_start=3758
  _globals['_DECKCONFIG_CONFIG_QUESTIONACTION']._serialized_end=3842
  _globals['_DECKCONFIGSFORUPDATE']._serialized_start=3857
  _globals['_DECKCONFIGSFORUPDATE']._serialized_end=4810
  _globals['_DECKCONFIGSFORUPDATE_CONFIGWITHEXTRA']._serialized_start=4317
  _globals['_DECKCONFIGSFORUPDATE_CONFIGWITHEXTRA']._serialized_end=4399
  _globals['_DECKCONFIGSFORUPDATE_CURRENTDECK']._serialized_start=4402
  _globals['_DECKCONFIGSFORUPDATE_CURRENTDECK']._serialized_end=4810
  _globals['_DECKCONFIGSFORUPDATE_CURRENTDECK_LIMITS']._serialized_start=4553
  _globals['_DECKCONFIGSFORUPDATE_CURRENTDECK_LIMITS']._serialized_end=4810
  _globals['_UPDATEDECKCONFIGSREQUEST']._serialized_start=4813
  _globals['_UPDATEDECKCONFIGSREQUEST']._serialized_end=5237
  _globals['_DECKCONFIGSERVICE']._serialized_start=5400
  _globals['_DECKCONFIGSERVICE']._serialized_end=6278
  _globals['_BACKENDDECKCONFIGSERVICE']._serialized_start=6280
  _globals['_BACKENDDECKCONFIGSERVICE']._serialized_end=6306
# @@protoc_insertion_point(module_scope)
