import type { WakeCycleUsageReport } from "./usage-report-types.js";
export type UsageReportQueueStatus = "pending" | "inflight" | "stale" | "rejected" | "acked";
export interface UsageReportQueueRow {
    wakeCycleId: string;
    report: WakeCycleUsageReport;
    status: UsageReportQueueStatus;
    attemptCount: number;
    lastAttemptAt: string | null;
    lastError: string | null;
    createdAt: string;
    ackedAt: string | null;
    reportSchemaVersion: number;
}
export declare function enqueueUsageReport(report: WakeCycleUsageReport): void;
export declare function listPendingUsageReports(limit: number): UsageReportQueueRow[];
export declare function markUsageReportsInflight(ids: string[]): void;
export declare function markUsageReportsAcked(ids: string[]): void;
export declare function markUsageReportsRejected(rejections: {
    wakeCycleId: string;
    reason: string;
}[]): void;
export declare function releaseStaleInflightUsageReports(timeoutMs: number): void;
export declare function releaseInflightUsageReports(ids: string[], reason: string): void;
export declare function markUsageReportsStaleOlderThan(days: number): void;
export declare function closeUsageReportQueue(): void;
//# sourceMappingURL=usage-report-queue.d.ts.map