/** * Statistics and analytics core module. * @task T4535 * @epic T4454 */ import type { Task, TaskRecord } from '@cleocode/contracts'; import type { DataAccessor } from '../store/data-accessor.js'; /** Get project statistics. */ export declare function getProjectStats(opts: { period?: string; verbose?: boolean; cwd?: string; }, accessor?: DataAccessor): Promise>; /** * Compute a ranking score for a blocked task. * Higher score = more urgent = sort first. */ export declare function rankBlockedTask(task: Task, allTasks: Task[], focusTask: Task | null): number; /** Get project dashboard data. */ export declare function getDashboard(opts: { compact?: boolean; period?: number; showCharts?: boolean; sections?: string[]; verbose?: boolean; quiet?: boolean; cwd?: string; blockedTasksLimit?: number; }, accessor?: DataAccessor): Promise>; /** Get completion history data. */ export declare function getCompletionHistory(opts: { days?: number; since?: string; until?: string; cwd?: string; }): Promise>; export { getWorkflowComplianceReport, type WorkflowComplianceReport, type WorkflowRuleMetric, } from './workflow-telemetry.js'; /** * Dashboard data shape for the system dash command. * * @task T1571 */ export interface DashboardData { /** Project name or directory basename. */ project: string; /** Currently active project phase, or null. */ currentPhase: string | null; /** Task count breakdown by status. */ summary: { pending: number; active: number; blocked: number; done: number; cancelled: number; total: number; archived: number; grandTotal: number; }; /** Currently focused task work state. */ taskWork: { currentTask: string | null; task: TaskRecord | null; }; /** Active session ID, or null. */ activeSession: string | null; /** High-priority tasks summary. */ highPriority: { count: number; tasks: TaskRecord[]; }; /** Blocked tasks summary. */ blockedTasks: { count: number; limit: number; tasks: TaskRecord[]; }; /** Recently completed task records. */ recentCompletions: TaskRecord[]; /** Most frequently used labels with counts. */ topLabels: Array<{ label: string; count: number; }>; } /** * Project statistics data shape including extended breakdowns. * * @task T1571 */ export interface StatsData { /** Current task counts by status. */ currentState: { pending: number; active: number; done: number; blocked: number; cancelled: number; totalActive: number; archived: number; grandTotal: number; }; /** Task counts grouped by priority level. */ byPriority: Record; /** Task counts grouped by task type. */ byType: Record; /** Task counts grouped by project phase (pipelineStage). */ byPhase: Record; /** Completion rate metrics over the configured period. */ completionMetrics: { periodDays: number; completedInPeriod: number; createdInPeriod: number; completionRate: number; }; /** Activity metrics over the configured period. */ activityMetrics: { createdInPeriod: number; completedInPeriod: number; archivedInPeriod: number; }; /** Lifetime metrics across all time. */ allTime: { totalCreated: number; totalCompleted: number; totalCancelled: number; totalArchived: number; archivedCompleted: number; }; /** Average time from creation to completion. */ cycleTimes: { averageDays: number | null; samples: number; }; } /** * Get extended project statistics including breakdowns by priority, type, phase, * and cycle time computation. * * Extends `getProjectStats` with the additional fields that system-engine.ts * computed via accessor queries. Moving this logic into core ensures a single * source of truth for stats computation. * * @param cwd - Absolute path to the project root * @param params - Optional period and accessor * @param accessor - Optional pre-opened DataAccessor * @returns Extended stats data * * @task T1571 */ export declare function getProjectStatsExtended(cwd: string, params?: { period?: number; }, accessor?: DataAccessor): Promise; //# sourceMappingURL=index.d.ts.map