/**
 * @param {number} [nowMs]
 * @returns {{
 *   sessionStartedAt: number,
 *   firstUsefulActionDelayMs: number | null,
 *   actionCount: number,
 *   actionBreakdown: Record<string, number>,
 *   currentPriorityItemId: string | null,
 *   currentPriorityItemStartedAt: number | null,
 *   resolvedPriorityDurationsMs: number[],
 * }}
 */
export function createSessionMetricsState(nowMs?: number): {
    sessionStartedAt: number;
    firstUsefulActionDelayMs: number | null;
    actionCount: number;
    actionBreakdown: Record<string, number>;
    currentPriorityItemId: string | null;
    currentPriorityItemStartedAt: number | null;
    resolvedPriorityDurationsMs: number[];
};
/**
 * @param {ReturnType<typeof createSessionMetricsState>} state
 * @param {'followup' | 'open' | 'approve' | 'cancelReview' | 'syncThreads' | 'other' | string} actionType
 * @param {number} [nowMs]
 * @returns {ReturnType<typeof createSessionMetricsState>}
 */
export function trackSessionAction(state: ReturnType<typeof createSessionMetricsState>, actionType: "followup" | "open" | "approve" | "cancelReview" | "syncThreads" | "other" | string, nowMs?: number): ReturnType<typeof createSessionMetricsState>;
/**
 * @param {ReturnType<typeof createSessionMetricsState>} state
 * @param {{ nowLaneItemId: string | null, pendingFixIds: string[], nowMs?: number }} input
 * @returns {ReturnType<typeof createSessionMetricsState>}
 */
export function updatePriorityItemTracking(state: ReturnType<typeof createSessionMetricsState>, input: {
    nowLaneItemId: string | null;
    pendingFixIds: string[];
    nowMs?: number;
}): ReturnType<typeof createSessionMetricsState>;
/**
 * @param {ReturnType<typeof createSessionMetricsState>} state
 * @returns {{
 *   firstUsefulActionDelayMs: number | null,
 *   actionCount: number,
 *   actionBreakdown: Record<string, number>,
 *   averagePriorityResolutionMs: number | null,
 * }}
 */
export function getSessionMetricsSnapshot(state: ReturnType<typeof createSessionMetricsState>): {
    firstUsefulActionDelayMs: number | null;
    actionCount: number;
    actionBreakdown: Record<string, number>;
    averagePriorityResolutionMs: number | null;
};
//# sourceMappingURL=sessionMetrics.d.ts.map