/**
 * SQLite RecognitionEvent Repository (spec 097, FR-22 / NFR-11).
 *
 * Backed by the `recognition_events` table (migration 102). The `insert`
 * method uses `INSERT … ON CONFLICT DO NOTHING` so that duplicate webhook
 * deliveries cannot double-award the same contributor for the same PR.
 *
 * The `inserted` flag returned by the upsert reflects whether a row was
 * actually written (true) or skipped because the UNIQUE constraint fired
 * (false). Callers use this flag to short-circuit downstream side-effects
 * like `IAllContributorsWriter.appendContributor`.
 */
import type Database from 'better-sqlite3';
import type { IRecognitionEventRepository, RecognitionInsertResult } from '../../application/ports/output/repositories/recognition-event-repository.interface.js';
import type { RecognitionEvent } from '../../domain/generated/output.js';
export declare class SQLiteRecognitionEventRepository implements IRecognitionEventRepository {
    private readonly db;
    constructor(db: Database.Database);
    insert(event: RecognitionEvent): Promise<RecognitionInsertResult>;
    findByContributorId(contributorId: string): Promise<RecognitionEvent[]>;
    findByMonth(yearMonth: string): Promise<RecognitionEvent[]>;
}
//# sourceMappingURL=sqlite-recognition-event.repository.d.ts.map