import { LoggerBackend } from './logger.js';

type RecallSectionPriority = "core" | "enrichment";
type RecallSectionSource = "fresh" | "stale" | "skip";
interface RecallSectionMetric {
    section: string;
    priority: RecallSectionPriority;
    durationMs: number;
    deadlineMs: number;
    source: RecallSectionSource;
    success: boolean;
    timing?: string;
}
interface RecallSectionMetricLog {
    message: string;
    payload: {
        section: string;
        priority: RecallSectionPriority;
        durationMs: number;
        deadlineMs: number;
        source: RecallSectionSource;
        success: boolean;
    };
    level: "info" | "debug";
    timing: string;
}
declare function formatRecallSectionMetric(metric: RecallSectionMetric): RecallSectionMetricLog;
declare function createRecallSectionMetricRecorder(options?: {
    timings?: Record<string, string>;
    logger?: Pick<LoggerBackend, "info" | "debug">;
}): (metric: RecallSectionMetric) => RecallSectionMetricLog;

export { type RecallSectionMetric, type RecallSectionMetricLog, type RecallSectionPriority, type RecallSectionSource, createRecallSectionMetricRecorder, formatRecallSectionMetric };
