[
  {
    "id": "class:1t69b7g:quizstateservice",
    "kind": "class",
    "fileId": "file:3xx07l:quizstateservice-cs",
    "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
    "canonicalName": "QuizStateService",
    "shortLabel": "QuizStateService",
    "longLabel": "QuizStateService",
    "purpose": "In-memory UI/shared service that holds quiz-related state (current quiz, block id, hydration and new-quiz flag) and notifies subscribers via events when the quiz is requested or updated."
  },
  {
    "id": "method:8psub5:requestquiz",
    "kind": "method",
    "fileId": "file:3xx07l:quizstateservice-cs",
    "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
    "line": 15,
    "canonicalName": "RequestQuiz",
    "shortLabel": "RequestQuiz()",
    "longLabel": "RequestQuiz(blockId: string) -> Task",
    "signature": "(blockId: string) -> Task",
    "purpose": "Sets the current quiz block id and notifies subscribers that a quiz was requested."
  },
  {
    "id": "method:o6n51:setquiz",
    "kind": "method",
    "fileId": "file:3xx07l:quizstateservice-cs",
    "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
    "line": 21,
    "canonicalName": "SetQuiz",
    "shortLabel": "SetQuiz()",
    "longLabel": "SetQuiz(blockId: string? , quiz: QuizDto? ) -> Task",
    "signature": "(blockId: string? , quiz: QuizDto? ) -> Task",
    "purpose": "Updates the current quiz and related flags, stops hydrating state, and notifies subscribers of the update."
  },
  {
    "id": "method:gisz9i:sethydrating",
    "kind": "method",
    "fileId": "file:3xx07l:quizstateservice-cs",
    "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
    "line": 30,
    "canonicalName": "SetHydrating",
    "shortLabel": "SetHydrating()",
    "longLabel": "SetHydrating(hydrating: bool) -> Task",
    "signature": "(hydrating: bool) -> Task",
    "purpose": "Sets the IsHydrating flag and notifies subscribers of the update."
  },
  {
    "id": "method:13pj2z1:markquizasseen",
    "kind": "method",
    "fileId": "file:3xx07l:quizstateservice-cs",
    "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
    "line": 36,
    "canonicalName": "MarkQuizAsSeen",
    "shortLabel": "MarkQuizAsSeen()",
    "longLabel": "MarkQuizAsSeen() -> Task",
    "signature": "() -> Task",
    "purpose": "If there is a new quiz flag, clears it and notifies subscribers."
  },
  {
    "id": "type:n36vet:quizstateservice",
    "kind": "type",
    "fileId": "file:3xx07l:quizstateservice-cs",
    "path": "NexusReader.UI.Shared/Services/QuizStateService.cs",
    "line": 5,
    "canonicalName": "QuizStateService",
    "shortLabel": "QuizStateService",
    "longLabel": "QuizStateService (model)",
    "purpose": "Holds quiz-related UI state and exposes events to notify UI consumers when state changes."
  }
]