import { AssignedQuestion } from "../core/assigned_exams"; import { ResponseKind } from "../response/common"; import { FullCreditVerifierSpecification } from "./FullCreditVerifier"; export interface QuestionVerifier { /** * Returns whether or not the given submission is verified. * @param sub The submission to verify */ verify(aq: AssignedQuestion): boolean; /** * Renders inner HTML for a verification status badge. This function is called * exactly once when the question in initally rendered. * @param elem The HTML element for the status badge. */ renderStatus(aq: AssignedQuestion): string; /** * Updates the elements to report verification status. * @param elem The HTML element for the status badge. */ updateStatus(aq: AssignedQuestion, elems: JQuery): void; /** * Activates any clientside JS for the verifier badge (e.g. annotations on click). * @param elem The HTML element for the status badge. */ activate(aq: AssignedQuestion, elem: JQuery): void; } export type QuestionVerifierSpecification = FullCreditVerifierSpecification; export declare function realizeVerifier(spec: QuestionVerifierSpecification): QuestionVerifier; export declare function renderQuestionVerifierStatus(aq: AssignedQuestion, verifier: QuestionVerifier): string; export declare function renderQuestionVerifierMiniStatus(aq: AssignedQuestion, verifier: QuestionVerifier): string;