import type { ApprovalPolicy, ApprovalRecord, ApprovalStatus, SLAStatus } from '../types/approval.js';
/**
 * Verify whether a spec meets the required approval count.
 * Returns null when the gate is satisfied, or an error message when not.
 */
export declare function checkApprovalGate(records: ApprovalRecord[], policy: ApprovalPolicy, specId: string): string | null;
/**
 * Calculate how many hours a spec has been in review.
 * reviewStartedAt should be an ISO 8601 string.
 * Returns 0 when reviewStartedAt is not provided.
 */
export declare function hoursInReview(reviewStartedAt: string | undefined): number;
/**
 * Compute SLA breach status given the start of review and the policy.
 */
export declare function calculateSLAStatus(reviewStartedAt: string | undefined, policy: ApprovalPolicy | null): SLAStatus;
/**
 * Build the full ApprovalStatus for a spec.
 */
export declare function buildApprovalStatus(specId: string, records: ApprovalRecord[], policy: ApprovalPolicy | null, reviewStartedAt: string | undefined): ApprovalStatus;
//# sourceMappingURL=approval-workflow.d.ts.map