# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: anki/scheduler.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/scheduler.proto'
)
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from anki import generic_pb2 as anki_dot_generic__pb2
from anki import cards_pb2 as anki_dot_cards__pb2
from anki import decks_pb2 as anki_dot_decks__pb2
from anki import collection_pb2 as anki_dot_collection__pb2
from anki import config_pb2 as anki_dot_config__pb2
from anki import deck_config_pb2 as anki_dot_deck__config__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14\x61nki/scheduler.proto\x12\x0e\x61nki.scheduler\x1a\x12\x61nki/generic.proto\x1a\x10\x61nki/cards.proto\x1a\x10\x61nki/decks.proto\x1a\x15\x61nki/collection.proto\x1a\x11\x61nki/config.proto\x1a\x16\x61nki/deck_config.proto\"\xd5\t\n\x0fSchedulingState\x12\x38\n\x06normal\x18\x01 \x01(\x0b\x32&.anki.scheduler.SchedulingState.NormalH\x00\x12<\n\x08\x66iltered\x18\x02 \x01(\x0b\x32(.anki.scheduler.SchedulingState.FilteredH\x00\x12\x18\n\x0b\x63ustom_data\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a\x17\n\x03New\x12\x10\n\x08position\x18\x01 \x01(\r\x1a\x9a\x01\n\x08Learning\x12\x17\n\x0fremaining_steps\x18\x01 \x01(\r\x12\x16\n\x0escheduled_secs\x18\x02 \x01(\r\x12\x14\n\x0c\x65lapsed_secs\x18\x03 \x01(\r\x12\x36\n\x0cmemory_state\x18\x06 \x01(\x0b\x32\x1b.anki.cards.FsrsMemoryStateH\x00\x88\x01\x01\x42\x0f\n\r_memory_state\x1a\xb5\x01\n\x06Review\x12\x16\n\x0escheduled_days\x18\x01 \x01(\r\x12\x14\n\x0c\x65lapsed_days\x18\x02 \x01(\r\x12\x13\n\x0b\x65\x61se_factor\x18\x03 \x01(\x02\x12\x0e\n\x06lapses\x18\x04 \x01(\r\x12\x0f\n\x07leeched\x18\x05 \x01(\x08\x12\x36\n\x0cmemory_state\x18\x06 \x01(\x0b\x32\x1b.anki.cards.FsrsMemoryStateH\x00\x88\x01\x01\x42\x0f\n\r_memory_state\x1a\x80\x01\n\nRelearning\x12\x36\n\x06review\x18\x01 \x01(\x0b\x32&.anki.scheduler.SchedulingState.Review\x12:\n\x08learning\x18\x02 \x01(\x0b\x32(.anki.scheduler.SchedulingState.Learning\x1a\xfe\x01\n\x06Normal\x12\x32\n\x03new\x18\x01 \x01(\x0b\x32#.anki.scheduler.SchedulingState.NewH\x00\x12<\n\x08learning\x18\x02 \x01(\x0b\x32(.anki.scheduler.SchedulingState.LearningH\x00\x12\x38\n\x06review\x18\x03 \x01(\x0b\x32&.anki.scheduler.SchedulingState.ReviewH\x00\x12@\n\nrelearning\x18\x04 \x01(\x0b\x32*.anki.scheduler.SchedulingState.RelearningH\x00\x42\x06\n\x04kind\x1a\x33\n\x07Preview\x12\x16\n\x0escheduled_secs\x18\x01 \x01(\r\x12\x10\n\x08\x66inished\x18\x02 \x01(\x08\x1aT\n\x12ReschedulingFilter\x12>\n\x0eoriginal_state\x18\x01 \x01(\x0b\x32&.anki.scheduler.SchedulingState.Normal\x1a\x9a\x01\n\x08\x46iltered\x12:\n\x07preview\x18\x01 \x01(\x0b\x32\'.anki.scheduler.SchedulingState.PreviewH\x00\x12J\n\x0crescheduling\x18\x02 \x01(\x0b\x32\x32.anki.scheduler.SchedulingState.ReschedulingFilterH\x00\x42\x06\n\x04kindB\x06\n\x04kindB\x0e\n\x0c_custom_data\"\xf8\x02\n\x0bQueuedCards\x12\x35\n\x05\x63\x61rds\x18\x01 \x03(\x0b\x32&.anki.scheduler.QueuedCards.QueuedCard\x12\x11\n\tnew_count\x18\x02 \x01(\r\x12\x16\n\x0elearning_count\x18\x03 \x01(\r\x12\x14\n\x0creview_count\x18\x04 \x01(\r\x1a\xc4\x01\n\nQueuedCard\x12\x1e\n\x04\x63\x61rd\x18\x01 \x01(\x0b\x32\x10.anki.cards.Card\x12\x30\n\x05queue\x18\x02 \x01(\x0e\x32!.anki.scheduler.QueuedCards.Queue\x12\x30\n\x06states\x18\x03 \x01(\x0b\x32 .anki.scheduler.SchedulingStates\x12\x32\n\x07\x63ontext\x18\x04 \x01(\x0b\x32!.anki.scheduler.SchedulingContext\"*\n\x05Queue\x12\x07\n\x03NEW\x10\x00\x12\x0c\n\x08LEARNING\x10\x01\x12\n\n\x06REVIEW\x10\x02\"L\n\x15GetQueuedCardsRequest\x12\x13\n\x0b\x66\x65tch_limit\x18\x01 \x01(\r\x12\x1e\n\x16intraday_learning_only\x18\x02 \x01(\x08\"E\n\x18SchedTimingTodayResponse\x12\x14\n\x0c\x64\x61ys_elapsed\x18\x01 \x01(\r\x12\x13\n\x0bnext_day_at\x18\x02 \x01(\x03\"<\n\x1aStudiedTodayMessageRequest\x12\r\n\x05\x63\x61rds\x18\x01 \x01(\r\x12\x0f\n\x07seconds\x18\x02 \x01(\x01\"i\n\x12UpdateStatsRequest\x12\x0f\n\x07\x64\x65\x63k_id\x18\x01 \x01(\x03\x12\x11\n\tnew_delta\x18\x02 \x01(\x05\x12\x14\n\x0creview_delta\x18\x04 \x01(\x05\x12\x19\n\x11millisecond_delta\x18\x05 \x01(\x05\"O\n\x13\x45xtendLimitsRequest\x12\x0f\n\x07\x64\x65\x63k_id\x18\x01 \x01(\x03\x12\x11\n\tnew_delta\x18\x02 \x01(\x05\x12\x14\n\x0creview_delta\x18\x03 \x01(\x05\"9\n\x1a\x43ountsForDeckTodayResponse\x12\x0b\n\x03new\x18\x01 \x01(\x05\x12\x0e\n\x06review\x18\x02 \x01(\x05\"\x8b\x02\n\x14\x43ongratsInfoResponse\x12\x17\n\x0flearn_remaining\x18\x01 \x01(\r\x12\x1d\n\x15secs_until_next_learn\x18\x02 \x01(\r\x12\x18\n\x10review_remaining\x18\x03 \x01(\x08\x12\x15\n\rnew_remaining\x18\x04 \x01(\x08\x12\x19\n\x11have_sched_buried\x18\x05 \x01(\x08\x12\x18\n\x10have_user_buried\x18\x06 \x01(\x08\x12\x18\n\x10is_filtered_deck\x18\x07 \x01(\x08\x12!\n\x19\x62ridge_commands_supported\x18\x08 \x01(\x08\x12\x18\n\x10\x64\x65\x63k_description\x18\t \x01(\t\"\x8a\x01\n\x11UnburyDeckRequest\x12\x0f\n\x07\x64\x65\x63k_id\x18\x01 \x01(\x03\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32&.anki.scheduler.UnburyDeckRequest.Mode\".\n\x04Mode\x12\x07\n\x03\x41LL\x10\x00\x12\x0e\n\nSCHED_ONLY\x10\x01\x12\r\n\tUSER_ONLY\x10\x02\"\xb1\x01\n\x19\x42uryOrSuspendCardsRequest\x12\x10\n\x08\x63\x61rd_ids\x18\x01 \x03(\x03\x12\x10\n\x08note_ids\x18\x02 \x03(\x03\x12<\n\x04mode\x18\x03 \x01(\x0e\x32..anki.scheduler.BuryOrSuspendCardsRequest.Mode\"2\n\x04Mode\x12\x0b\n\x07SUSPEND\x10\x00\x12\x0e\n\nBURY_SCHED\x10\x01\x12\r\n\tBURY_USER\x10\x02\"\xe5\x01\n\x19ScheduleCardsAsNewRequest\x12\x10\n\x08\x63\x61rd_ids\x18\x01 \x03(\x03\x12\x0b\n\x03log\x18\x02 \x01(\x08\x12\x18\n\x10restore_position\x18\x03 \x01(\x08\x12\x14\n\x0creset_counts\x18\x04 \x01(\x08\x12G\n\x07\x63ontext\x18\x05 \x01(\x0e\x32\x31.anki.scheduler.ScheduleCardsAsNewRequest.ContextH\x00\x88\x01\x01\"$\n\x07\x43ontext\x12\x0b\n\x07\x42ROWSER\x10\x00\x12\x0c\n\x08REVIEWER\x10\x01\x42\n\n\x08_context\"g\n!ScheduleCardsAsNewDefaultsRequest\x12\x42\n\x07\x63ontext\x18\x01 \x01(\x0e\x32\x31.anki.scheduler.ScheduleCardsAsNewRequest.Context\"T\n\"ScheduleCardsAsNewDefaultsResponse\x12\x18\n\x10restore_position\x18\x01 \x01(\x08\x12\x14\n\x0creset_counts\x18\x02 \x01(\x08\"m\n\x11SetDueDateRequest\x12\x10\n\x08\x63\x61rd_ids\x18\x01 \x03(\x03\x12\x0c\n\x04\x64\x61ys\x18\x02 \x01(\t\x12\x38\n\nconfig_key\x18\x03 \x01(\x0b\x32$.anki.config.OptionalStringConfigKey\"V\n\x0fGradeNowRequest\x12\x10\n\x08\x63\x61rd_ids\x18\x01 \x03(\x03\x12\x31\n\x06rating\x18\x02 \x01(\x0e\x32!.anki.scheduler.CardAnswer.Rating\"y\n\x10SortCardsRequest\x12\x10\n\x08\x63\x61rd_ids\x18\x01 \x03(\x03\x12\x15\n\rstarting_from\x18\x02 \x01(\r\x12\x11\n\tstep_size\x18\x03 \x01(\r\x12\x11\n\trandomize\x18\x04 \x01(\x08\x12\x16\n\x0eshift_existing\x18\x05 \x01(\x08\"5\n\x0fSortDeckRequest\x12\x0f\n\x07\x64\x65\x63k_id\x18\x01 \x01(\x03\x12\x11\n\trandomize\x18\x02 \x01(\x08\"\x81\x02\n\x10SchedulingStates\x12\x30\n\x07\x63urrent\x18\x01 \x01(\x0b\x32\x1f.anki.scheduler.SchedulingState\x12.\n\x05\x61gain\x18\x02 \x01(\x0b\x32\x1f.anki.scheduler.SchedulingState\x12-\n\x04hard\x18\x03 \x01(\x0b\x32\x1f.anki.scheduler.SchedulingState\x12-\n\x04good\x18\x04 \x01(\x0b\x32\x1f.anki.scheduler.SchedulingState\x12-\n\x04\x65\x61sy\x18\x05 \x01(\x0b\x32\x1f.anki.scheduler.SchedulingState\"\xa7\x02\n\nCardAnswer\x12\x0f\n\x07\x63\x61rd_id\x18\x01 \x01(\x03\x12\x36\n\rcurrent_state\x18\x02 \x01(\x0b\x32\x1f.anki.scheduler.SchedulingState\x12\x32\n\tnew_state\x18\x03 \x01(\x0b\x32\x1f.anki.scheduler.SchedulingState\x12\x31\n\x06rating\x18\x04 \x01(\x0e\x32!.anki.scheduler.CardAnswer.Rating\x12\x1a\n\x12\x61nswered_at_millis\x18\x05 \x01(\x03\x12\x1a\n\x12milliseconds_taken\x18\x06 \x01(\r\"1\n\x06Rating\x12\t\n\x05\x41GAIN\x10\x00\x12\x08\n\x04HARD\x10\x01\x12\x08\n\x04GOOD\x10\x02\x12\x08\n\x04\x45\x41SY\x10\x03\"\xd6\x03\n\x12\x43ustomStudyRequest\x12\x0f\n\x07\x64\x65\x63k_id\x18\x01 \x01(\x03\x12\x19\n\x0fnew_limit_delta\x18\x02 \x01(\x05H\x00\x12\x1c\n\x12review_limit_delta\x18\x03 \x01(\x05H\x00\x12\x15\n\x0b\x66orgot_days\x18\x04 \x01(\rH\x00\x12\x1b\n\x11review_ahead_days\x18\x05 \x01(\rH\x00\x12\x16\n\x0cpreview_days\x18\x06 \x01(\rH\x00\x12\x37\n\x04\x63ram\x18\x07 \x01(\x0b\x32\'.anki.scheduler.CustomStudyRequest.CramH\x00\x1a\xe7\x01\n\x04\x43ram\x12>\n\x04kind\x18\x01 \x01(\x0e\x32\x30.anki.scheduler.CustomStudyRequest.Cram.CramKind\x12\x12\n\ncard_limit\x18\x02 \x01(\r\x12\x17\n\x0ftags_to_include\x18\x03 \x03(\t\x12\x17\n\x0ftags_to_exclude\x18\x04 \x03(\t\"Y\n\x08\x43ramKind\x12\x11\n\rCRAM_KIND_DUE\x10\x00\x12\x11\n\rCRAM_KIND_NEW\x10\x01\x12\x14\n\x10\x43RAM_KIND_REVIEW\x10\x02\x12\x11\n\rCRAM_KIND_ALL\x10\x03\x42\x07\n\x05value\"\x88\x01\n\x11SchedulingContext\x12\x11\n\tdeck_name\x18\x01 \x01(\t\x12\x0c\n\x04seed\x18\x02 \x01(\x04\x12\x12\n\x05\x64\x65\x63\x61y\x18\x03 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11\x64\x65sired_retention\x18\x04 \x01(\x02H\x01\x88\x01\x01\x42\x08\n\x06_decayB\x14\n\x12_desired_retention\"-\n\x1a\x43ustomStudyDefaultsRequest\x12\x0f\n\x07\x64\x65\x63k_id\x18\x01 \x01(\x03\"\xb8\x02\n\x1b\x43ustomStudyDefaultsResponse\x12=\n\x04tags\x18\x01 \x03(\x0b\x32/.anki.scheduler.CustomStudyDefaultsResponse.Tag\x12\x12\n\nextend_new\x18\x02 \x01(\r\x12\x15\n\rextend_review\x18\x03 \x01(\r\x12\x15\n\ravailable_new\x18\x04 \x01(\r\x12\x18\n\x10\x61vailable_review\x18\x05 \x01(\r\x12!\n\x19\x61vailable_new_in_children\x18\x06 \x01(\r\x12$\n\x1c\x61vailable_review_in_children\x18\x07 \x01(\r\x1a\x35\n\x03Tag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07include\x18\x02 \x01(\x08\x12\x0f\n\x07\x65xclude\x18\x03 \x01(\x08\";\n\x1aRepositionDefaultsResponse\x12\x0e\n\x06random\x18\x01 \x01(\x08\x12\r\n\x05shift\x18\x02 \x01(\x08\"\x9b\x01\n\x18\x43omputeFsrsParamsRequest\x12\x0e\n\x06search\x18\x01 \x01(\t\x12\x16\n\x0e\x63urrent_params\x18\x02 \x03(\x02\x12 \n\x18ignore_revlogs_before_ms\x18\x03 \x01(\x03\x12\x1f\n\x17num_of_relearning_steps\x18\x04 \x01(\r\x12\x14\n\x0chealth_check\x18\x05 \x01(\x08\"y\n\x19\x43omputeFsrsParamsResponse\x12\x0e\n\x06params\x18\x01 \x03(\x02\x12\x12\n\nfsrs_items\x18\x02 \x01(\r\x12 \n\x13health_check_passed\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_health_check_passed\"L\n!ComputeFsrsParamsFromItemsRequest\x12\'\n\x05items\x18\x01 \x03(\x0b\x32\x18.anki.scheduler.FsrsItem\"C\n\x14\x46srsBenchmarkRequest\x12+\n\ttrain_set\x18\x01 \x03(\x0b\x32\x18.anki.scheduler.FsrsItem\"\'\n\x15\x46srsBenchmarkResponse\x12\x0e\n\x06params\x18\x01 \x03(\x02\"@\n\x14\x45xportDatasetRequest\x12\x13\n\x0bmin_entries\x18\x01 \x01(\r\x12\x13\n\x0btarget_path\x18\x02 \x01(\t\"7\n\x08\x46srsItem\x12+\n\x07reviews\x18\x01 \x03(\x0b\x32\x1a.anki.scheduler.FsrsReview\"-\n\nFsrsReview\x12\x0e\n\x06rating\x18\x01 \x01(\r\x12\x0f\n\x07\x64\x65lta_t\x18\x02 \x01(\r\"\xf3\x03\n\x19SimulateFsrsReviewRequest\x12\x0e\n\x06params\x18\x01 \x03(\x02\x12\x19\n\x11\x64\x65sired_retention\x18\x02 \x01(\x02\x12\x11\n\tdeck_size\x18\x03 \x01(\r\x12\x18\n\x10\x64\x61ys_to_simulate\x18\x04 \x01(\r\x12\x11\n\tnew_limit\x18\x05 \x01(\r\x12\x14\n\x0creview_limit\x18\x06 \x01(\r\x12\x14\n\x0cmax_interval\x18\x07 \x01(\r\x12\x0e\n\x06search\x18\x08 \x01(\t\x12%\n\x1dnew_cards_ignore_review_limit\x18\t \x01(\x08\x12\x1d\n\x15\x65\x61sy_days_percentages\x18\n \x03(\x02\x12I\n\x0creview_order\x18\x0b \x01(\x0e\x32\x33.anki.deck_config.DeckConfig.Config.ReviewCardOrder\x12&\n\x19suspend_after_lapse_count\x18\x0c \x01(\rH\x00\x88\x01\x01\x12\x1c\n\x14historical_retention\x18\r \x01(\x02\x12\x1b\n\x13learning_step_count\x18\x0e \x01(\r\x12\x1d\n\x15relearning_step_count\x18\x0f \x01(\rB\x1c\n\x1a_suspend_after_lapse_count\"\x95\x01\n\x1aSimulateFsrsReviewResponse\x12)\n!accumulated_knowledge_acquisition\x18\x01 \x03(\x02\x12\x1a\n\x12\x64\x61ily_review_count\x18\x02 \x03(\r\x12\x17\n\x0f\x64\x61ily_new_count\x18\x03 \x03(\r\x12\x17\n\x0f\x64\x61ily_time_cost\x18\x04 \x03(\x02\"\xbe\x03\n\x1cSimulateFsrsWorkloadResponse\x12\x44\n\x04\x63ost\x18\x01 \x03(\x0b\x32\x36.anki.scheduler.SimulateFsrsWorkloadResponse.CostEntry\x12 \n\x18reviewless_end_memorized\x18\x02 \x01(\x02\x12N\n\tmemorized\x18\x03 \x03(\x0b\x32;.anki.scheduler.SimulateFsrsWorkloadResponse.MemorizedEntry\x12S\n\x0creview_count\x18\x04 \x03(\x0b\x32=.anki.scheduler.SimulateFsrsWorkloadResponse.ReviewCountEntry\x1a+\n\tCostEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x30\n\x0eMemorizedEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x32\n\x10ReviewCountEntry\x12\x0b\n\x03key\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\r:\x02\x38\x01\"<\n\x1f\x43omputeOptimalRetentionResponse\x12\x19\n\x11optimal_retention\x18\x01 \x01(\x02\"6\n$GetOptimalRetentionParametersRequest\x12\x0e\n\x06search\x18\x01 \x01(\t\"\x91\x03\n%GetOptimalRetentionParametersResponse\x12\x11\n\tdeck_size\x18\x01 \x01(\r\x12\x12\n\nlearn_span\x18\x02 \x01(\r\x12\x17\n\x0fmax_cost_perday\x18\x03 \x01(\x02\x12\x0f\n\x07max_ivl\x18\x04 \x01(\x02\x12\x19\n\x11\x66irst_rating_prob\x18\x05 \x03(\x02\x12\x1a\n\x12review_rating_prob\x18\x06 \x03(\x02\x12\x15\n\rloss_aversion\x18\x07 \x01(\x02\x12\x13\n\x0blearn_limit\x18\x08 \x01(\r\x12\x14\n\x0creview_limit\x18\t \x01(\r\x12!\n\x19learning_step_transitions\x18\n \x03(\x02\x12#\n\x1brelearning_step_transitions\x18\x0b \x03(\x02\x12\x1a\n\x12state_rating_costs\x18\x0c \x03(\x02\x12\x1b\n\x13learning_step_count\x18\r \x01(\r\x12\x1d\n\x15relearning_step_count\x18\x0e \x01(\r\"j\n\x15\x45valuateParamsRequest\x12\x0e\n\x06search\x18\x01 \x01(\t\x12 \n\x18ignore_revlogs_before_ms\x18\x02 \x01(\x03\x12\x1f\n\x17num_of_relearning_steps\x18\x03 \x01(\r\"_\n\x1b\x45valuateParamsLegacyRequest\x12\x0e\n\x06params\x18\x01 \x03(\x02\x12\x0e\n\x06search\x18\x02 \x01(\t\x12 \n\x18ignore_revlogs_before_ms\x18\x03 \x01(\x03\"=\n\x16\x45valuateParamsResponse\x12\x10\n\x08log_loss\x18\x01 \x01(\x02\x12\x11\n\trmse_bins\x18\x02 \x01(\x02\"\x81\x01\n\x1a\x43omputeMemoryStateResponse\x12/\n\x05state\x18\x01 \x01(\x0b\x32\x1b.anki.cards.FsrsMemoryStateH\x00\x88\x01\x01\x12\x19\n\x11\x64\x65sired_retention\x18\x02 \x01(\x02\x12\r\n\x05\x64\x65\x63\x61y\x18\x03 \x01(\x02\x42\x08\n\x06_state\"5\n\x10\x46uzzDeltaRequest\x12\x0f\n\x07\x63\x61rd_id\x18\x01 \x01(\x03\x12\x10\n\x08interval\x18\x02 \x01(\r\"\'\n\x11\x46uzzDeltaResponse\x12\x12\n\ndelta_days\x18\x01 \x01(\x11\x32\xfe\x18\n\x10SchedulerService\x12T\n\x0eGetQueuedCards\x12%.anki.scheduler.GetQueuedCardsRequest\x1a\x1b.anki.scheduler.QueuedCards\x12\x44\n\nAnswerCard\x12\x1a.anki.scheduler.CardAnswer\x1a\x1a.anki.collection.OpChanges\x12Q\n\x10SchedTimingToday\x12\x13.anki.generic.Empty\x1a(.anki.scheduler.SchedTimingTodayResponse\x12\x39\n\x0cStudiedToday\x12\x13.anki.generic.Empty\x1a\x14.anki.generic.String\x12W\n\x13StudiedTodayMessage\x12*.anki.scheduler.StudiedTodayMessageRequest\x1a\x14.anki.generic.String\x12\x46\n\x0bUpdateStats\x12\".anki.scheduler.UpdateStatsRequest\x1a\x13.anki.generic.Empty\x12H\n\x0c\x45xtendLimits\x12#.anki.scheduler.ExtendLimitsRequest\x1a\x13.anki.generic.Empty\x12T\n\x12\x43ountsForDeckToday\x12\x12.anki.decks.DeckId\x1a*.anki.scheduler.CountsForDeckTodayResponse\x12I\n\x0c\x43ongratsInfo\x12\x13.anki.generic.Empty\x1a$.anki.scheduler.CongratsInfoResponse\x12Q\n\x1eRestoreBuriedAndSuspendedCards\x12\x13.anki.cards.CardIds\x1a\x1a.anki.collection.OpChanges\x12K\n\nUnburyDeck\x12!.anki.scheduler.UnburyDeckRequest\x1a\x1a.anki.collection.OpChanges\x12\x64\n\x12\x42uryOrSuspendCards\x12).anki.scheduler.BuryOrSuspendCardsRequest\x1a#.anki.collection.OpChangesWithCount\x12\x43\n\x11\x45mptyFilteredDeck\x12\x12.anki.decks.DeckId\x1a\x1a.anki.collection.OpChanges\x12N\n\x13RebuildFilteredDeck\x12\x12.anki.decks.DeckId\x1a#.anki.collection.OpChangesWithCount\x12[\n\x12ScheduleCardsAsNew\x12).anki.scheduler.ScheduleCardsAsNewRequest\x1a\x1a.anki.collection.OpChanges\x12\x83\x01\n\x1aScheduleCardsAsNewDefaults\x12\x31.anki.scheduler.ScheduleCardsAsNewDefaultsRequest\x1a\x32.anki.scheduler.ScheduleCardsAsNewDefaultsResponse\x12K\n\nSetDueDate\x12!.anki.scheduler.SetDueDateRequest\x1a\x1a.anki.collection.OpChanges\x12G\n\x08GradeNow\x12\x1f.anki.scheduler.GradeNowRequest\x1a\x1a.anki.collection.OpChanges\x12R\n\tSortCards\x12 .anki.scheduler.SortCardsRequest\x1a#.anki.collection.OpChangesWithCount\x12P\n\x08SortDeck\x12\x1f.anki.scheduler.SortDeckRequest\x1a#.anki.collection.OpChangesWithCount\x12K\n\x13GetSchedulingStates\x12\x12.anki.cards.CardId\x1a .anki.scheduler.SchedulingStates\x12P\n\x12\x44\x65scribeNextStates\x12 .anki.scheduler.SchedulingStates\x1a\x18.anki.generic.StringList\x12\x43\n\x0cStateIsLeech\x12\x1f.anki.scheduler.SchedulingState\x1a\x12.anki.generic.Bool\x12<\n\x10UpgradeScheduler\x12\x13.anki.generic.Empty\x1a\x13.anki.generic.Empty\x12M\n\x0b\x43ustomStudy\x12\".anki.scheduler.CustomStudyRequest\x1a\x1a.anki.collection.OpChanges\x12n\n\x13\x43ustomStudyDefaults\x12*.anki.scheduler.CustomStudyDefaultsRequest\x1a+.anki.scheduler.CustomStudyDefaultsResponse\x12U\n\x12RepositionDefaults\x12\x13.anki.generic.Empty\x1a*.anki.scheduler.RepositionDefaultsResponse\x12h\n\x11\x43omputeFsrsParams\x12(.anki.scheduler.ComputeFsrsParamsRequest\x1a).anki.scheduler.ComputeFsrsParamsResponse\x12\x8c\x01\n\x1dGetOptimalRetentionParameters\x12\x34.anki.scheduler.GetOptimalRetentionParametersRequest\x1a\x35.anki.scheduler.GetOptimalRetentionParametersResponse\x12u\n\x17\x43omputeOptimalRetention\x12).anki.scheduler.SimulateFsrsReviewRequest\x1a/.anki.scheduler.ComputeOptimalRetentionResponse\x12k\n\x12SimulateFsrsReview\x12).anki.scheduler.SimulateFsrsReviewRequest\x1a*.anki.scheduler.SimulateFsrsReviewResponse\x12o\n\x14SimulateFsrsWorkload\x12).anki.scheduler.SimulateFsrsReviewRequest\x1a,.anki.scheduler.SimulateFsrsWorkloadResponse\x12_\n\x0e\x45valuateParams\x12%.anki.scheduler.EvaluateParamsRequest\x1a&.anki.scheduler.EvaluateParamsResponse\x12k\n\x14\x45valuateParamsLegacy\x12+.anki.scheduler.EvaluateParamsLegacyRequest\x1a&.anki.scheduler.EvaluateParamsResponse\x12T\n\x12\x43omputeMemoryState\x12\x12.anki.cards.CardId\x1a*.anki.scheduler.ComputeMemoryStateResponse\x12P\n\tFuzzDelta\x12 .anki.scheduler.FuzzDeltaRequest\x1a!.anki.scheduler.FuzzDeltaResponse2\xbf\x02\n\x17\x42\x61\x63kendSchedulerService\x12z\n\x1a\x43omputeFsrsParamsFromItems\x12\x31.anki.scheduler.ComputeFsrsParamsFromItemsRequest\x1a).anki.scheduler.ComputeFsrsParamsResponse\x12\\\n\rFsrsBenchmark\x12$.anki.scheduler.FsrsBenchmarkRequest\x1a%.anki.scheduler.FsrsBenchmarkResponse\x12J\n\rExportDataset\x12$.anki.scheduler.ExportDatasetRequest\x1a\x13.anki.generic.EmptyB\x02P\x01\x62\x06proto3')

_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'anki.scheduler_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
  _globals['DESCRIPTOR']._loaded_options = None
  _globals['DESCRIPTOR']._serialized_options = b'P\001'
  _globals['_SIMULATEFSRSWORKLOADRESPONSE_COSTENTRY']._loaded_options = None
  _globals['_SIMULATEFSRSWORKLOADRESPONSE_COSTENTRY']._serialized_options = b'8\001'
  _globals['_SIMULATEFSRSWORKLOADRESPONSE_MEMORIZEDENTRY']._loaded_options = None
  _globals['_SIMULATEFSRSWORKLOADRESPONSE_MEMORIZEDENTRY']._serialized_options = b'8\001'
  _globals['_SIMULATEFSRSWORKLOADRESPONSE_REVIEWCOUNTENTRY']._loaded_options = None
  _globals['_SIMULATEFSRSWORKLOADRESPONSE_REVIEWCOUNTENTRY']._serialized_options = b'8\001'
  _globals['_SCHEDULINGSTATE']._serialized_start=163
  _globals['_SCHEDULINGSTATE']._serialized_end=1400
  _globals['_SCHEDULINGSTATE_NEW']._serialized_start=328
  _globals['_SCHEDULINGSTATE_NEW']._serialized_end=351
  _globals['_SCHEDULINGSTATE_LEARNING']._serialized_start=354
  _globals['_SCHEDULINGSTATE_LEARNING']._serialized_end=508
  _globals['_SCHEDULINGSTATE_REVIEW']._serialized_start=511
  _globals['_SCHEDULINGSTATE_REVIEW']._serialized_end=692
  _globals['_SCHEDULINGSTATE_RELEARNING']._serialized_start=695
  _globals['_SCHEDULINGSTATE_RELEARNING']._serialized_end=823
  _globals['_SCHEDULINGSTATE_NORMAL']._serialized_start=826
  _globals['_SCHEDULINGSTATE_NORMAL']._serialized_end=1080
  _globals['_SCHEDULINGSTATE_PREVIEW']._serialized_start=1082
  _globals['_SCHEDULINGSTATE_PREVIEW']._serialized_end=1133
  _globals['_SCHEDULINGSTATE_RESCHEDULINGFILTER']._serialized_start=1135
  _globals['_SCHEDULINGSTATE_RESCHEDULINGFILTER']._serialized_end=1219
  _globals['_SCHEDULINGSTATE_FILTERED']._serialized_start=1222
  _globals['_SCHEDULINGSTATE_FILTERED']._serialized_end=1376
  _globals['_QUEUEDCARDS']._serialized_start=1403
  _globals['_QUEUEDCARDS']._serialized_end=1779
  _globals['_QUEUEDCARDS_QUEUEDCARD']._serialized_start=1539
  _globals['_QUEUEDCARDS_QUEUEDCARD']._serialized_end=1735
  _globals['_QUEUEDCARDS_QUEUE']._serialized_start=1737
  _globals['_QUEUEDCARDS_QUEUE']._serialized_end=1779
  _globals['_GETQUEUEDCARDSREQUEST']._serialized_start=1781
  _globals['_GETQUEUEDCARDSREQUEST']._serialized_end=1857
  _globals['_SCHEDTIMINGTODAYRESPONSE']._serialized_start=1859
  _globals['_SCHEDTIMINGTODAYRESPONSE']._serialized_end=1928
  _globals['_STUDIEDTODAYMESSAGEREQUEST']._serialized_start=1930
  _globals['_STUDIEDTODAYMESSAGEREQUEST']._serialized_end=1990
  _globals['_UPDATESTATSREQUEST']._serialized_start=1992
  _globals['_UPDATESTATSREQUEST']._serialized_end=2097
  _globals['_EXTENDLIMITSREQUEST']._serialized_start=2099
  _globals['_EXTENDLIMITSREQUEST']._serialized_end=2178
  _globals['_COUNTSFORDECKTODAYRESPONSE']._serialized_start=2180
  _globals['_COUNTSFORDECKTODAYRESPONSE']._serialized_end=2237
  _globals['_CONGRATSINFORESPONSE']._serialized_start=2240
  _globals['_CONGRATSINFORESPONSE']._serialized_end=2507
  _globals['_UNBURYDECKREQUEST']._serialized_start=2510
  _globals['_UNBURYDECKREQUEST']._serialized_end=2648
  _globals['_UNBURYDECKREQUEST_MODE']._serialized_start=2602
  _globals['_UNBURYDECKREQUEST_MODE']._serialized_end=2648
  _globals['_BURYORSUSPENDCARDSREQUEST']._serialized_start=2651
  _globals['_BURYORSUSPENDCARDSREQUEST']._serialized_end=2828
  _globals['_BURYORSUSPENDCARDSREQUEST_MODE']._serialized_start=2778
  _globals['_BURYORSUSPENDCARDSREQUEST_MODE']._serialized_end=2828
  _globals['_SCHEDULECARDSASNEWREQUEST']._serialized_start=2831
  _globals['_SCHEDULECARDSASNEWREQUEST']._serialized_end=3060
  _globals['_SCHEDULECARDSASNEWREQUEST_CONTEXT']._serialized_start=3012
  _globals['_SCHEDULECARDSASNEWREQUEST_CONTEXT']._serialized_end=3048
  _globals['_SCHEDULECARDSASNEWDEFAULTSREQUEST']._serialized_start=3062
  _globals['_SCHEDULECARDSASNEWDEFAULTSREQUEST']._serialized_end=3165
  _globals['_SCHEDULECARDSASNEWDEFAULTSRESPONSE']._serialized_start=3167
  _globals['_SCHEDULECARDSASNEWDEFAULTSRESPONSE']._serialized_end=3251
  _globals['_SETDUEDATEREQUEST']._serialized_start=3253
  _globals['_SETDUEDATEREQUEST']._serialized_end=3362
  _globals['_GRADENOWREQUEST']._serialized_start=3364
  _globals['_GRADENOWREQUEST']._serialized_end=3450
  _globals['_SORTCARDSREQUEST']._serialized_start=3452
  _globals['_SORTCARDSREQUEST']._serialized_end=3573
  _globals['_SORTDECKREQUEST']._serialized_start=3575
  _globals['_SORTDECKREQUEST']._serialized_end=3628
  _globals['_SCHEDULINGSTATES']._serialized_start=3631
  _globals['_SCHEDULINGSTATES']._serialized_end=3888
  _globals['_CARDANSWER']._serialized_start=3891
  _globals['_CARDANSWER']._serialized_end=4186
  _globals['_CARDANSWER_RATING']._serialized_start=4137
  _globals['_CARDANSWER_RATING']._serialized_end=4186
  _globals['_CUSTOMSTUDYREQUEST']._serialized_start=4189
  _globals['_CUSTOMSTUDYREQUEST']._serialized_end=4659
  _globals['_CUSTOMSTUDYREQUEST_CRAM']._serialized_start=4419
  _globals['_CUSTOMSTUDYREQUEST_CRAM']._serialized_end=4650
  _globals['_CUSTOMSTUDYREQUEST_CRAM_CRAMKIND']._serialized_start=4561
  _globals['_CUSTOMSTUDYREQUEST_CRAM_CRAMKIND']._serialized_end=4650
  _globals['_SCHEDULINGCONTEXT']._serialized_start=4662
  _globals['_SCHEDULINGCONTEXT']._serialized_end=4798
  _globals['_CUSTOMSTUDYDEFAULTSREQUEST']._serialized_start=4800
  _globals['_CUSTOMSTUDYDEFAULTSREQUEST']._serialized_end=4845
  _globals['_CUSTOMSTUDYDEFAULTSRESPONSE']._serialized_start=4848
  _globals['_CUSTOMSTUDYDEFAULTSRESPONSE']._serialized_end=5160
  _globals['_CUSTOMSTUDYDEFAULTSRESPONSE_TAG']._serialized_start=5107
  _globals['_CUSTOMSTUDYDEFAULTSRESPONSE_TAG']._serialized_end=5160
  _globals['_REPOSITIONDEFAULTSRESPONSE']._serialized_start=5162
  _globals['_REPOSITIONDEFAULTSRESPONSE']._serialized_end=5221
  _globals['_COMPUTEFSRSPARAMSREQUEST']._serialized_start=5224
  _globals['_COMPUTEFSRSPARAMSREQUEST']._serialized_end=5379
  _globals['_COMPUTEFSRSPARAMSRESPONSE']._serialized_start=5381
  _globals['_COMPUTEFSRSPARAMSRESPONSE']._serialized_end=5502
  _globals['_COMPUTEFSRSPARAMSFROMITEMSREQUEST']._serialized_start=5504
  _globals['_COMPUTEFSRSPARAMSFROMITEMSREQUEST']._serialized_end=5580
  _globals['_FSRSBENCHMARKREQUEST']._serialized_start=5582
  _globals['_FSRSBENCHMARKREQUEST']._serialized_end=5649
  _globals['_FSRSBENCHMARKRESPONSE']._serialized_start=5651
  _globals['_FSRSBENCHMARKRESPONSE']._serialized_end=5690
  _globals['_EXPORTDATASETREQUEST']._serialized_start=5692
  _globals['_EXPORTDATASETREQUEST']._serialized_end=5756
  _globals['_FSRSITEM']._serialized_start=5758
  _globals['_FSRSITEM']._serialized_end=5813
  _globals['_FSRSREVIEW']._serialized_start=5815
  _globals['_FSRSREVIEW']._serialized_end=5860
  _globals['_SIMULATEFSRSREVIEWREQUEST']._serialized_start=5863
  _globals['_SIMULATEFSRSREVIEWREQUEST']._serialized_end=6362
  _globals['_SIMULATEFSRSREVIEWRESPONSE']._serialized_start=6365
  _globals['_SIMULATEFSRSREVIEWRESPONSE']._serialized_end=6514
  _globals['_SIMULATEFSRSWORKLOADRESPONSE']._serialized_start=6517
  _globals['_SIMULATEFSRSWORKLOADRESPONSE']._serialized_end=6963
  _globals['_SIMULATEFSRSWORKLOADRESPONSE_COSTENTRY']._serialized_start=6818
  _globals['_SIMULATEFSRSWORKLOADRESPONSE_COSTENTRY']._serialized_end=6861
  _globals['_SIMULATEFSRSWORKLOADRESPONSE_MEMORIZEDENTRY']._serialized_start=6863
  _globals['_SIMULATEFSRSWORKLOADRESPONSE_MEMORIZEDENTRY']._serialized_end=6911
  _globals['_SIMULATEFSRSWORKLOADRESPONSE_REVIEWCOUNTENTRY']._serialized_start=6913
  _globals['_SIMULATEFSRSWORKLOADRESPONSE_REVIEWCOUNTENTRY']._serialized_end=6963
  _globals['_COMPUTEOPTIMALRETENTIONRESPONSE']._serialized_start=6965
  _globals['_COMPUTEOPTIMALRETENTIONRESPONSE']._serialized_end=7025
  _globals['_GETOPTIMALRETENTIONPARAMETERSREQUEST']._serialized_start=7027
  _globals['_GETOPTIMALRETENTIONPARAMETERSREQUEST']._serialized_end=7081
  _globals['_GETOPTIMALRETENTIONPARAMETERSRESPONSE']._serialized_start=7084
  _globals['_GETOPTIMALRETENTIONPARAMETERSRESPONSE']._serialized_end=7485
  _globals['_EVALUATEPARAMSREQUEST']._serialized_start=7487
  _globals['_EVALUATEPARAMSREQUEST']._serialized_end=7593
  _globals['_EVALUATEPARAMSLEGACYREQUEST']._serialized_start=7595
  _globals['_EVALUATEPARAMSLEGACYREQUEST']._serialized_end=7690
  _globals['_EVALUATEPARAMSRESPONSE']._serialized_start=7692
  _globals['_EVALUATEPARAMSRESPONSE']._serialized_end=7753
  _globals['_COMPUTEMEMORYSTATERESPONSE']._serialized_start=7756
  _globals['_COMPUTEMEMORYSTATERESPONSE']._serialized_end=7885
  _globals['_FUZZDELTAREQUEST']._serialized_start=7887
  _globals['_FUZZDELTAREQUEST']._serialized_end=7940
  _globals['_FUZZDELTARESPONSE']._serialized_start=7942
  _globals['_FUZZDELTARESPONSE']._serialized_end=7981
  _globals['_SCHEDULERSERVICE']._serialized_start=7984
  _globals['_SCHEDULERSERVICE']._serialized_end=11182
  _globals['_BACKENDSCHEDULERSERVICE']._serialized_start=11185
  _globals['_BACKENDSCHEDULERSERVICE']._serialized_end=11504
# @@protoc_insertion_point(module_scope)
