UNPKG

fsrs-algorithm

Version:

Free Spaced Repetition Scheduler (FSRS) algorithm implementation in TypeScript

65 lines 2.47 kB
import { Card, FSRSParameters, SchedulingCards, RawCardData } from "./types"; export declare class FSRS { private parameters; constructor(parameters?: Partial<FSRSParameters>); /** * Creates a new, empty card object. * @param now The current date, defaults to new Date(). * @returns A new Card object. */ createEmptyCard(now?: Date): Card; /** * Generates scheduling information for all possible ratings for a given card. * @param card The card to schedule. * @param now The current date of the review. * @returns An object containing the card and review log for each rating. */ schedule(card: Card, now?: Date): SchedulingCards; /** * Converts raw card data, validates it, and then schedules it. * @param rawData The raw card data from a database or API. * @param now The current date of the review. * @returns Scheduling cards for all ratings. */ scheduleRawCard(rawData: RawCardData, now?: Date): SchedulingCards; /** * Converts and validates raw card data into a formal Card object. * @param rawData The raw card data. * @returns A validated Card object. */ convertRawCard(rawData: RawCardData): Card; /** * Batch converts and validates multiple raw cards. * @param rawDataArray Array of raw card data. * @returns An object containing arrays of valid cards and any errors encountered. */ convertRawCardBatch(rawDataArray: RawCardData[]): { valid: Card[]; errors: Array<{ index: number; error: string; data: RawCardData; }>; }; /** * Calculates the probability of recalling a card at a given time. * @param card The card to calculate retrievability for. * @param now The date for which to calculate retrievability. * @returns A number between 0 and 1, representing the probability of recall. */ getRetrievability(card: Card, now?: Date): number | undefined; private buildSchedulingCards; private calculateScheduledCard; private buildReviewLog; private initStability; private initDifficulty; private nextDifficulty; private nextStability; private nextInterval; private retrievability; private addDays; private getRatingKey; updateParameters(newParameters: Partial<FSRSParameters>): void; getParameters(): FSRSParameters; } //# sourceMappingURL=fsrs.d.ts.map