import type { CalculatorParams, RatingsList, CalculatorIterationStatus, ScorecardsEntry, userId } from "@graperank/util/types";
export declare class Calculator {
    readonly observer: userId;
    readonly ratings: RatingsList;
    private updateStatus?;
    private updateComplete?;
    constructor(observer: userId, ratings: RatingsList, params?: Partial<CalculatorParams>, updateStatus?: (newstatus: CalculatorIterationStatus) => Promise<void>, updateComplete?: () => Promise<void>);
    readonly params: Required<CalculatorParams>;
    private calculators;
    private _stopped;
    stop(): void;
    /**
     * Calculate new scorecards from interpreted ratings and input scorecards
     */
    calculate(): Promise<ScorecardsEntry[]>;
    private iterate;
    get scorecards(): ScorecardsEntry[];
}
