/**
 * Daily Log - Staging area for memory writes.
 *
 * All memories land here first. Promotion to working/semantic memory
 * is a separate step controlled by the user via `uap memory promote`.
 * Inspired by Total Recall's "daily log first, promote later" pattern.
 */
import Database from 'better-sqlite3';
export interface DailyLogEntry {
    id: number;
    date: string;
    timestamp: string;
    content: string;
    type: string;
    promoted: boolean;
    promotedTo?: string;
    gateScore: number;
}
export interface PromotionCandidate {
    entry: DailyLogEntry;
    suggestedTier: 'working' | 'semantic';
    reason: string;
}
export declare function ensureDailyLogSchema(db: Database.Database): void;
export declare class DailyLog {
    private db;
    constructor(dbPath: string);
    /**
     * Write an entry to today's daily log.
     */
    write(content: string, type?: string, gateScore?: number): number;
    /**
     * Get entries for a specific date (default: today).
     */
    getByDate(date?: string): DailyLogEntry[];
    /**
     * Get unpromoted entries across all dates (candidates for promotion).
     */
    getUnpromoted(limit?: number): DailyLogEntry[];
    /**
     * Get promotion candidates - entries scored high enough to promote.
     */
    getPromotionCandidates(minScore?: number): PromotionCandidate[];
    /**
     * Mark an entry as promoted.
     */
    markPromoted(id: number, tier: string): void;
    /**
     * Archive old entries (>30 days) by marking them.
     */
    archiveOld(daysOld?: number): number;
    /**
     * Get log statistics.
     */
    getStats(): {
        total: number;
        unpromoted: number;
        promoted: number;
        todayCount: number;
    };
    /**
     * Get recent entries across dates.
     */
    getRecent(limit?: number): DailyLogEntry[];
    /**
     * Auto-promote high-quality unpromoted entries.
     * Promotes entries with gate score >= minScore to their suggested tier.
     * Returns the number of entries promoted.
     */
    autoPromote(minScore?: number): number;
    close(): void;
}
//# sourceMappingURL=daily-log.d.ts.map