/**
 * Orchestration status computation.
 *
 * Provides status aggregation for epics, overall project state,
 * progress metrics, and orchestration check state.
 *
 * @task T5702
 */
import type { Task } from '@cleocode/contracts';
/** Status counts by task state. */
export interface StatusCounts {
    pending: number;
    active: number;
    blocked: number;
    done: number;
    cancelled?: number;
}
/** Epic-specific status result. */
export interface EpicStatus {
    epicId: string;
    epicTitle: string;
    totalTasks: number;
    byStatus: StatusCounts;
    waves: number;
    currentWave: number | null;
}
/** Overall orchestration status (no specific epic). */
export interface OverallStatus {
    totalEpics: number;
    totalTasks: number;
    byStatus: StatusCounts;
}
/** Progress metrics for orchestration check. */
export interface ProgressMetrics {
    total: number;
    done: number;
    pending: number;
    blocked: number;
    active: number;
    percentComplete: number;
}
/** Startup summary for an epic. */
export interface StartupSummary {
    epicId: string;
    epicTitle: string;
    initialized: boolean;
    summary: {
        totalTasks: number;
        totalWaves: number;
        readyTasks: number;
        byStatus: StatusCounts;
    };
    firstWave: import('./waves.js').Wave | null;
}
/**
 * Count tasks by status.
 */
export declare function countByStatus(tasks: Task[]): StatusCounts;
/**
 * Compute epic-specific status.
 *
 * @param epicId - The epic task ID
 * @param epicTitle - The epic title
 * @param children - Child tasks of the epic
 * @returns Epic status with wave information
 */
export declare function computeEpicStatus(epicId: string, epicTitle: string, children: Task[]): EpicStatus;
/**
 * Compute overall orchestration status across all tasks.
 *
 * @param tasks - All tasks in the project
 * @returns Overall status with epic count
 */
export declare function computeOverallStatus(tasks: Task[]): OverallStatus;
/**
 * Compute progress metrics for all tasks.
 *
 * @param tasks - All tasks to measure
 * @returns Progress metrics with completion percentage
 */
export declare function computeProgress(tasks: Task[]): ProgressMetrics;
/**
 * Compute startup summary for an epic.
 *
 * @param epicId - The epic task ID
 * @param epicTitle - The epic title
 * @param children - Child tasks of the epic
 * @param readyCount - Number of ready tasks
 * @returns Startup summary with wave information
 */
export declare function computeStartupSummary(epicId: string, epicTitle: string, children: Task[], readyCount: number): StartupSummary;
//# sourceMappingURL=status.d.ts.map