/* eslint-disable */
import * as types from './graphql';
import type { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';

/**
 * Map of all GraphQL operations in the project.
 *
 * This map has several performance disadvantages:
 * 1. It is not tree-shakeable, so it will include all operations in the project.
 * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.
 * 3. It does not support dead code elimination, so it will add unused operations.
 *
 * Therefore it is highly recommended to use the babel or swc plugin for production.
 */
const documents = {
    "\n  mutation SendFeedbackMutation($input: SendFeedbackInput!) {\n    send_feedback(input: $input) {\n      feedback_response {\n        id\n      }\n      errors {\n        field\n        messages\n      }\n    }\n  }\n": types.SendFeedbackMutationDocument,
    "\n  mutation UpsertAssignmentCompletion(\n    $assignmentId: ID!\n    $courseSessionId: ID!\n    $assignmentUserId: ID\n    $completionStatus: String!\n    $completionDataString: String!\n    $evaluationGrade: Float\n    $evaluationPoints: Float\n  ) {\n    upsert_assignment_completion(\n      assignment_id: $assignmentId\n      course_session_id: $courseSessionId\n      assignment_user_id: $assignmentUserId\n      completion_status: $completionStatus\n      completion_data_string: $completionDataString\n      evaluation_grade: $evaluationGrade\n      evaluation_points: $evaluationPoints\n    ) {\n      assignment_completion {\n        id\n        completion_status\n        submitted_at\n        evaluation_submitted_at\n        evaluation_grade\n        evaluation_points\n        completion_data\n      }\n    }\n  }\n": types.UpsertAssignmentCompletionDocument,
    "\n  query assignmentCompletionQuery(\n    $assignmentId: ID!\n    $courseSessionId: ID!\n    $assignmentUserId: ID\n  ) {\n    assignment(id: $assignmentId) {\n      assignment_type\n      content_type\n      effort_required\n      evaluation_description\n      evaluation_document_url\n      evaluation_tasks\n      id\n      intro_text\n      performance_objectives\n      slug\n      tasks\n      title\n      translation_key\n    }\n    assignment_completion(\n      assignment_id: $assignmentId\n      course_session_id: $courseSessionId\n      assignment_user_id: $assignmentUserId\n    ) {\n      id\n      completion_status\n      submitted_at\n      evaluation_submitted_at\n      evaluation_user {\n        id\n      }\n      assignment_user {\n        id\n      }\n      evaluation_grade\n      evaluation_points\n      completion_data\n    }\n  }\n": types.AssignmentCompletionQueryDocument,
    "\n  query courseQuery($courseId: Int!) {\n    course(id: $courseId) {\n      id\n      slug\n      title\n      category_name\n      learning_path {\n        id\n      }\n    }\n  }\n": types.CourseQueryDocument,
};

/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 *
 *
 * @example
 * ```ts
 * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);
 * ```
 *
 * The query argument is unknown!
 * Please regenerate the types.
 */
export function graphql(source: string): unknown;

/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(source: "\n  mutation SendFeedbackMutation($input: SendFeedbackInput!) {\n    send_feedback(input: $input) {\n      feedback_response {\n        id\n      }\n      errors {\n        field\n        messages\n      }\n    }\n  }\n"): (typeof documents)["\n  mutation SendFeedbackMutation($input: SendFeedbackInput!) {\n    send_feedback(input: $input) {\n      feedback_response {\n        id\n      }\n      errors {\n        field\n        messages\n      }\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(source: "\n  mutation UpsertAssignmentCompletion(\n    $assignmentId: ID!\n    $courseSessionId: ID!\n    $assignmentUserId: ID\n    $completionStatus: String!\n    $completionDataString: String!\n    $evaluationGrade: Float\n    $evaluationPoints: Float\n  ) {\n    upsert_assignment_completion(\n      assignment_id: $assignmentId\n      course_session_id: $courseSessionId\n      assignment_user_id: $assignmentUserId\n      completion_status: $completionStatus\n      completion_data_string: $completionDataString\n      evaluation_grade: $evaluationGrade\n      evaluation_points: $evaluationPoints\n    ) {\n      assignment_completion {\n        id\n        completion_status\n        submitted_at\n        evaluation_submitted_at\n        evaluation_grade\n        evaluation_points\n        completion_data\n      }\n    }\n  }\n"): (typeof documents)["\n  mutation UpsertAssignmentCompletion(\n    $assignmentId: ID!\n    $courseSessionId: ID!\n    $assignmentUserId: ID\n    $completionStatus: String!\n    $completionDataString: String!\n    $evaluationGrade: Float\n    $evaluationPoints: Float\n  ) {\n    upsert_assignment_completion(\n      assignment_id: $assignmentId\n      course_session_id: $courseSessionId\n      assignment_user_id: $assignmentUserId\n      completion_status: $completionStatus\n      completion_data_string: $completionDataString\n      evaluation_grade: $evaluationGrade\n      evaluation_points: $evaluationPoints\n    ) {\n      assignment_completion {\n        id\n        completion_status\n        submitted_at\n        evaluation_submitted_at\n        evaluation_grade\n        evaluation_points\n        completion_data\n      }\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(source: "\n  query assignmentCompletionQuery(\n    $assignmentId: ID!\n    $courseSessionId: ID!\n    $assignmentUserId: ID\n  ) {\n    assignment(id: $assignmentId) {\n      assignment_type\n      content_type\n      effort_required\n      evaluation_description\n      evaluation_document_url\n      evaluation_tasks\n      id\n      intro_text\n      performance_objectives\n      slug\n      tasks\n      title\n      translation_key\n    }\n    assignment_completion(\n      assignment_id: $assignmentId\n      course_session_id: $courseSessionId\n      assignment_user_id: $assignmentUserId\n    ) {\n      id\n      completion_status\n      submitted_at\n      evaluation_submitted_at\n      evaluation_user {\n        id\n      }\n      assignment_user {\n        id\n      }\n      evaluation_grade\n      evaluation_points\n      completion_data\n    }\n  }\n"): (typeof documents)["\n  query assignmentCompletionQuery(\n    $assignmentId: ID!\n    $courseSessionId: ID!\n    $assignmentUserId: ID\n  ) {\n    assignment(id: $assignmentId) {\n      assignment_type\n      content_type\n      effort_required\n      evaluation_description\n      evaluation_document_url\n      evaluation_tasks\n      id\n      intro_text\n      performance_objectives\n      slug\n      tasks\n      title\n      translation_key\n    }\n    assignment_completion(\n      assignment_id: $assignmentId\n      course_session_id: $courseSessionId\n      assignment_user_id: $assignmentUserId\n    ) {\n      id\n      completion_status\n      submitted_at\n      evaluation_submitted_at\n      evaluation_user {\n        id\n      }\n      assignment_user {\n        id\n      }\n      evaluation_grade\n      evaluation_points\n      completion_data\n    }\n  }\n"];
/**
 * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
 */
export function graphql(source: "\n  query courseQuery($courseId: Int!) {\n    course(id: $courseId) {\n      id\n      slug\n      title\n      category_name\n      learning_path {\n        id\n      }\n    }\n  }\n"): (typeof documents)["\n  query courseQuery($courseId: Int!) {\n    course(id: $courseId) {\n      id\n      slug\n      title\n      category_name\n      learning_path {\n        id\n      }\n    }\n  }\n"];

export function graphql(source: string) {
  return (documents as any)[source] ?? {};
}

export type DocumentType<TDocumentNode extends DocumentNode<any, any>> = TDocumentNode extends DocumentNode<  infer TType,  any>  ? TType  : never;