import type { StorageProvider } from '../storage/storage-provider.js';
import { type QueueMetricsReport } from './queue-metrics.js';
export interface QueueMetricsServiceOptions {
    /** Entries fetched per storage page. Default 500. */
    pageSize?: number;
    /** Safety cap on entries scanned per request; surfaced via `truncated`. Default 50_000. */
    scanCap?: number;
}
export interface QueueMetricsResult extends QueueMetricsReport {
    /** Number of job entries aggregated. */
    scanned: number;
    /** True if the scan hit the cap (older jobs in the window were not counted). */
    truncated: boolean;
}
/** Computes queue metrics by aggregating stored `job` entries over a time
 *  window. Reads the store (source of truth) on demand — no live counters, so
 *  it is correct across restarts and replicas. */
export declare class QueueMetricsService {
    private readonly storage;
    private readonly pageSize;
    private readonly scanCap;
    constructor(storage: StorageProvider, options?: QueueMetricsServiceOptions);
    getQueueMetrics(windowMs: number): Promise<QueueMetricsResult>;
}
//# sourceMappingURL=queue-metrics.service.d.ts.map