import type { DashboardMetrics, DashboardSpecCard, ProjectHealthScore, SpecStatusUpdateResult, StatusTransitionMap } from '../../types/index.js';
/** Ordered list of valid spec statuses */
export declare const VALID_STATUSES: readonly ["draft", "review", "approved", "implementing", "done", "discarded"];
/** Valid forward + one-step-back transitions */
export declare const STATUS_TRANSITIONS: StatusTransitionMap;
/** Check if a status string is a valid spec status */
export declare function isValidStatus(s: string): boolean;
/** Check if a transition from one status to another is valid */
export declare function isValidTransition(from: string, to: string): boolean;
/** Group specs by their status into a Record */
export declare function groupSpecsByStatus(specs: DashboardSpecCard[]): Record<string, DashboardSpecCard[]>;
/** Check if a column exceeds its WIP limit */
export declare function isOverWipLimit(column: string, specs: DashboardSpecCard[], limits: Record<string, number>): boolean;
/** Build a standardized update result */
export declare function buildUpdateResult(success: boolean, specId: string, newStatus: string, error?: string): SpecStatusUpdateResult;
/** Compute the percentage of specs with status 'done', excluding discarded from total */
export declare function computeCompletionRate(specs: DashboardSpecCard[]): number;
/** Compute the ratio of implemented criteria to total criteria */
export declare function computeCriteriaCoverage(specs: DashboardSpecCard[]): number;
/** Compute velocity: specs completed in the last N days (uses updatedAt) */
export declare function computeVelocity(specs: DashboardSpecCard[], days: number): number;
/** Compute all dashboard metrics from spec data */
export declare function computeDashboardMetrics(specs: DashboardSpecCard[], driftScore?: number): DashboardMetrics;
/**
 * Compute a weighted health score from dashboard metrics.
 * Weights: completion=30, coverage=30, drift=20, velocity=20
 * Drift is inverted (lower drift = better score).
 * Velocity is capped at 100 (10+ specs/month = perfect).
 */
export declare function computeHealthScore(metrics: DashboardMetrics): ProjectHealthScore;
//# sourceMappingURL=kanban-logic.d.ts.map