import { SafeResult } from "@rolesvillesoftware/tools/dist"; import { ExamContext } from "../models/ExamContext"; export declare abstract class Calculator { protected context: ExamContext; constructor(context: ExamContext); abstract calculate(input?: I): Promise; static initialize, I, O>(calculatorClass: new (context: ExamContext) => C, context: ExamContext): C; protected runCalculator, Z, X>(calculatorClass: new (context: ExamContext) => C, input: Z): Promise>; protected processResults(result: SafeResult): X; }