import type { LevelUpEvent, ProgressFile, ScoredCommit } from "./types.js";
export interface AwardResult {
    file: ProgressFile;
    gained: number;
    levelUp: LevelUpEvent | null;
}
/** Streak multiplier for the current streak length (in days). */
export declare function streakMultiplier(days: number): number;
/** Raw XP for a commit of a given size (before multipliers/caps). */
export declare function commitXp(linesChanged: number): number;
/** Update streak for an XP event happening now. Returns the active multiplier. */
export declare function applyStreak(file: ProgressFile, now: number): number;
/**
 * Award XP for one completed prompt (caller ensures the run finished, not canceled, ≥1 turn).
 * Diminishing returns: after 15 prompts in a rolling hour, +2 instead of +10.
 */
export declare function awardPrompt(file: ProgressFile, now: number, cwd?: string): AwardResult;
/**
 * Award XP for new commits. Dedupes by patch-id (reverts/recommits score 0) and caps
 * XP-earning commits at 6 per rolling hour (extra commits still count in totals).
 */
export declare function awardCommits(file: ProgressFile, commits: ScoredCommit[], now: number, cwd?: string): AwardResult;
//# sourceMappingURL=engine.d.ts.map