import type { Difficulty, RiskLevel, SpecStatus } from './common.js';
/** State of the dashboard HTTP server (singleton in memory) */
export interface DashboardServerState {
    port: number;
    isRunning: boolean;
    startedAt: Date | null;
}
/** Summary of a project for dashboard display */
export interface DashboardProjectSummary {
    id: string;
    name: string;
    path: string;
    stack: string;
    lastActivity: string;
    specCount: number;
    doneCount: number;
    specs: DashboardSpecCard[];
}
/** Card data for a single spec in the dashboard */
export interface DashboardSpecCard {
    id: string;
    title: string;
    status: SpecStatus;
    criteriaTotal: number;
    criteriaImplemented: number;
    progressPercent: number;
    updatedAt?: string;
    difficulty?: Difficulty;
    risk?: RiskLevel;
    tags?: string[];
}
/** Health metrics for a project displayed in the health panel */
export interface ProjectHealthMetrics {
    totalSpecs: number;
    donePercent: number;
    pendingApproval: number;
    activeImplementation: number;
    totalEstimation: number | null;
}
/** Trend direction indicator for dashboard metrics */
export type TrendDirection = 'up' | 'down' | 'stable';
/** Single metric with trend */
export interface MetricTrend {
    value: number;
    trend: TrendDirection;
}
/** Dashboard metrics computed from spec data */
export interface DashboardMetrics {
    completionRate: number;
    criteriaCoverage: number;
    velocity: number;
    driftScore: number;
}
/** Trend information for all dashboard metrics */
export interface DashboardMetricTrends {
    completionRate: TrendDirection;
    criteriaCoverage: TrendDirection;
    velocity: TrendDirection;
    driftScore: TrendDirection;
}
/** WIP limits per kanban column */
export type KanbanWipLimits = Record<string, number>;
/** Valid status transitions map */
export type StatusTransitionMap = Record<string, string[]>;
/** Result of a spec status update operation */
export interface SpecStatusUpdateResult {
    success: boolean;
    specId: string;
    newStatus: string;
    error?: string;
}
/** Project health score with weighted components */
export interface ProjectHealthScore {
    overall: number;
    components: {
        completion: number;
        coverage: number;
        drift: number;
        velocity: number;
    };
}
/** Raw constitution drift data */
export interface RawConstitutionDrift {
    score?: number;
    violations?: number;
}
/** Frontmatter data parsed from spec.md YAML header */
export interface SpecFrontmatter {
    [key: string]: unknown;
    status?: string;
    difficulty?: number;
    risk?: string;
    tags?: string[];
    updatedAt?: string;
}
/** Enhanced spec detail data with code links and frontmatter */
export interface SpecDetailData {
    hu: string | null;
    ficha: string | null;
    progress: string | null;
    codeLinks: string[];
    frontmatter: SpecFrontmatter;
}
/** Usage stats panel data read from data/global/ (SPEC-064) */
export interface DashboardUsageStats {
    tier: string;
    callsToday: number;
    dailyLimit: number | null;
    trialDaysLeft: number | null;
    isAvailable: boolean;
}
/** Raw structure of project.json files read by data-loader */
export interface RawProjectJson {
    name?: string;
    path?: string;
    stack?: string;
    language?: string;
    framework?: string;
    updatedAt?: string;
    createdAt?: string;
}
/** Raw structure of spec.json files read by data-loader */
export interface RawSpecJson {
    id?: string;
    title?: string;
    status?: string;
    estimation?: {
        totalDays?: number;
        totalPoints?: number;
    };
    updatedAt?: string;
    difficulty?: number;
    risk?: string;
    tags?: string[];
}
/** Raw structure of usage.json file read by data-loader */
export interface RawUsageJson {
    tier?: string;
    callsToday?: number;
    dailyLimit?: number | null;
    trialDaysLeft?: number | null;
}
/** A single event representing a change in project data */
export interface DashboardEvent {
    type: 'spec_updated' | 'spec_created' | 'spec_deleted' | 'project_updated';
    specId?: string;
    timestamp: string;
    data?: Record<string, unknown>;
}
/** Response from the events endpoint */
export interface DashboardEventsResponse {
    events: DashboardEvent[];
    timestamp: string;
}
/** Input for start_dashboard MCP tool */
export interface StartDashboardInput {
    port?: number;
    open_browser?: boolean;
}
/** Input for stop_dashboard MCP tool */
export type StopDashboardInput = Record<string, never>;
//# sourceMappingURL=dashboard.d.ts.map