/**
 * Pending review queue health metrics (GitHub #294 / issue #277 follow-up).
 * Uses memory_review_candidate timestamps; optional append-only snapshots for trends.
 */
import type Database from 'better-sqlite3';
export interface ReviewQueueWindowCounts {
    /** Rows inserted in the window (producer signal; created_at). */
    candidatesCreated: number;
    reviewed: number;
    dismissed: number;
    expired: number;
    /** reviewed + dismissed + expired in the window. */
    processedTotal: number;
    /** created − processed (same-window proxy for queue pressure). */
    netFlow: number;
    /** processed / created when created > 0; otherwise null. */
    processingRatio: number | null;
}
export interface MemoryReviewQueueHealthLive {
    sampledAt: string;
    pendingTotal: number;
    window1h: ReviewQueueWindowCounts;
    window24h: ReviewQueueWindowCounts;
}
export interface MemoryReviewQueueHealthSnapshotRow {
    id: number;
    sampled_at: string;
    pending_total: number;
    created_last_1h: number;
    reviewed_last_1h: number;
    dismissed_last_1h: number;
    expired_last_1h: number;
    created_last_24h: number;
    reviewed_last_24h: number;
    dismissed_last_24h: number;
    expired_last_24h: number;
    net_flow_1h: number;
    processing_ratio_1h: number | null;
}
/**
 * Compute live health metrics from the current DB (no writes).
 */
export declare function computeMemoryReviewQueueHealthLive(db: Database.Database, nowMs?: number): MemoryReviewQueueHealthLive;
export declare function memoryReviewQueueHealthSnapshotTableReady(db: Database.Database): boolean;
/**
 * Append one snapshot row from current metrics. No-op when migration 034 is not applied.
 */
export declare function recordMemoryReviewQueueHealthSnapshot(db: Database.Database, nowMs?: number): MemoryReviewQueueHealthSnapshotRow | null;
/**
 * Recent snapshots newest-first (for dashboard / APIs).
 */
export declare function listMemoryReviewQueueHealthSnapshots(db: Database.Database, limit: number): MemoryReviewQueueHealthSnapshotRow[];
/** Insert a snapshot at most once per minGapMs based on latest sampled_at (for on-demand refreshes). */
export declare function maybeRecordMemoryReviewQueueHealthSnapshot(db: Database.Database, minGapMs: number, nowMs?: number): MemoryReviewQueueHealthSnapshotRow | null;
//# sourceMappingURL=memory-review-queue-health-service.d.ts.map