/**
 * SQLite Settings Repository Implementation
 *
 * Implements ISettingsRepository using SQLite database.
 * Enforces singleton pattern (only one Settings record allowed).
 * Uses prepared statements to prevent SQL injection.
 */
import type Database from 'better-sqlite3';
import type { ISettingsRepository } from '../../application/ports/output/settings.repository.interface.js';
import type { Settings } from '../../domain/generated/output.js';
/**
 * SQLite implementation of ISettingsRepository.
 * Manages Settings persistence with singleton constraint.
 */
export declare class SQLiteSettingsRepository implements ISettingsRepository {
    private readonly db;
    constructor(db: Database.Database);
    /**
     * Initialize settings for the first time.
     * Creates a new Settings record in the database.
     *
     * @param settings - The settings to initialize with
     * @throws Error if settings already exist (singleton constraint)
     */
    initialize(settings: Settings): Promise<void>;
    /**
     * Load existing settings from the database.
     *
     * @returns The existing Settings or null if not initialized
     */
    load(): Promise<Settings | null>;
    /**
     * Update existing settings in the database.
     *
     * @param settings - The updated settings to persist
     * @throws Error if settings don't exist (must initialize first)
     */
    update(settings: Settings): Promise<void>;
}
//# sourceMappingURL=sqlite-settings.repository.d.ts.map