My App
LoopKitType Reference

Configuration

DeckConfig, SessionOptions, and related configuration types

DeckConfig

Complete configuration for a deck's SRS behavior. All fields have sensible defaults.

interface DeckConfig {
    newCardsPerDay: number;          // Default: 20
    maxReviewsPerDay: number;        // Default: 200
    learningSteps: number[];         // Default: [1, 10] (minutes)
    graduatingInterval: number;      // Default: 1 (days)
    easyInterval: number;            // Default: 4 (days)
    relearningSteps: number[];       // Default: [10] (minutes)
    lapseNewInterval: number;        // Default: 0.7 (multiplier)
    lapseMinInterval: number;        // Default: 1 (days)
    maxInterval: number;             // Default: 36500 (~100 years)
    startingEaseFactor: number;      // Default: 2.5
    hardIntervalMultiplier: number;  // Default: 1.2
    easyBonus: number;               // Default: 1.3
    newCardOrder: NewCardOrder;      // Default: 'added'
    reviewOrder: ReviewOrder;        // Default: 'due'
    nextDayStartsAt: number;         // Default: 4 (4 AM)
    enableFuzz: boolean;             // Default: true
}

Field Details

FieldTypeDefaultDescription
newCardsPerDaynumber20Maximum new cards introduced per day
maxReviewsPerDaynumber200Maximum reviews per day
learningStepsnumber[][1, 10]Learning step durations in minutes
graduatingIntervalnumber1Days until first review after graduating
easyIntervalnumber4Days until first review when graduating via "easy"
relearningStepsnumber[][10]Relearning step durations in minutes
lapseNewIntervalnumber0.7Interval multiplier on lapse (0–1)
lapseMinIntervalnumber1Minimum interval after lapse in days
maxIntervalnumber36500Maximum interval in days (~100 years)
startingEaseFactornumber2.5Initial ease factor for new cards
hardIntervalMultipliernumber1.2Interval multiplier for "hard" grade
easyBonusnumber1.3Extra multiplier for "easy" grade
newCardOrderNewCardOrder'added'Order for introducing new cards
reviewOrderReviewOrder'due'Order for review cards
nextDayStartsAtnumber4Hour when a new "study day" begins (0–23)
enableFuzzbooleantrueAdd ±5% interval variance

Order Types

type NewCardOrder = 'added' | 'random';
type ReviewOrder = 'due' | 'random' | 'relative-overdueness';

DEFAULT_DECK_CONFIG

The hardcoded defaults, exported as a frozen object:

import { DEFAULT_DECK_CONFIG } from '@loopkit/nestjs';

SessionOptions

Options for ReviewSessionService.buildQueue():

interface SessionOptions {
    tags?: string[];            // Filter cards by tags
    newCardsLimit?: number;     // Override newCardsPerDay
    reviewCardsLimit?: number;  // Override maxReviewsPerDay
}

DeckCounts

Aggregated card counts by state:

interface DeckCounts {
    new: number;
    learning: number;
    review: number;
    relearning: number;
    total: number;
}

On this page