import { AssignedQuestion, GradedQuestion } from "../core/assigned_exams"; import { ResponseKind } from "../response/common"; import { QuestionGrader } from "./QuestionGrader"; export type CodeWritingRubricItemStatus = "on" | "off" | "unknown"; export type CodeWritingRubricItem = { rubric_item_uuid: string; points: number; title: string; description: string; sort_index?: string; active: boolean; }; export type CodeWritingGraderSpecification = { readonly grader_kind: "manual_code_writing"; readonly points_possible: number; }; export type CodeWritingRubricItemResult = { status?: "on" | "off" | "unknown"; notes?: string; }; export type CodeWritingRubricResult = { [index: string]: CodeWritingRubricItemResult | undefined; }; export type CodeWritingGraderSubmissionResult = { submission_uuid: string; finished?: boolean; grader?: string; rubric_items: CodeWritingRubricResult; }; export type CodeWritingGraderGradingResult = CodeWritingGraderSubmissionResult & { wasBlankSubmission: boolean; }; export type CodeWritingGraderData = { rubric: CodeWritingRubricItem[]; submission_results: CodeWritingGraderSubmissionResult[]; }; export declare class CodeWritingGrader implements QuestionGrader { readonly t_response_kinds: ResponseKind; readonly spec: CodeWritingGraderSpecification; private rubric; private grading_data?; private submission_results; constructor(spec: CodeWritingGraderSpecification); scale(new_points_possible: number): this; isGrader(responseKind: T): this is QuestionGrader; prepare(exam_id: string, question_id: string, grading_data: CodeWritingGraderData): void; grade(aq: AssignedQuestion): CodeWritingGraderGradingResult | undefined; pointsEarned(gr: CodeWritingGraderGradingResult): number; renderReport(aq: GradedQuestion): string; annotateResponseElem(gq: GradedQuestion, response_elem: JQuery): void; renderStats(): string; renderOverview(): string; }