import type { WorkspaceStatusSnapshot } from "../dashboard/dashboard-status.js";
import { type CanonicalPhaseResolution, type PhaseScheduleRelation } from "../phase-resolution.js";
import type { TaskEntity } from "../types.js";
export type ReadyTaskQueueHealthRow = {
    taskId: string;
    title: string;
    phaseAligned: boolean | null;
    /** Present when `phaseAligned` is false or null and details help operators. */
    taskPhaseKey: string | null;
    canonicalPhaseKey: string | null;
    /** Workspace-current vs scheduled-target (`future` is allowed planned work, not a queue defect). */
    phaseScheduleRelation: PhaseScheduleRelation;
    blockedByDependencies: boolean;
    unmetDependencies: string[];
};
export type QueueHealthReport = {
    schemaVersion: 1;
    scope: "tasks-only";
    canonicalPhase: CanonicalPhaseResolution & {
        phaseLabelFromConfig: string | null;
    };
    readyTaskSummaries: ReadyTaskQueueHealthRow[];
    summary: {
        readyCount: number;
        /** Ready tasks whose phase key orders before the workspace current phase (or non-numeric misalignment). */
        misalignedPhaseCount: number;
        /** Ready tasks intentionally scheduled for a higher numbered phase than workspace current (planned-ahead work). */
        scheduledFuturePhaseCount: number;
        blockedByDependenciesCount: number;
        /** Ready tasks that are phase-aligned (or phase check skipped) and have no unmet deps. */
        healthyReadyCount: number;
    };
};
export declare function buildQueueHealthReport(args: {
    tasks: TaskEntity[];
    effectiveConfig: Record<string, unknown> | undefined;
    workspaceStatus: WorkspaceStatusSnapshot | null;
}): QueueHealthReport;
/** Hints for list-tasks / filtering; same dependency + phase rules as queue-health ready rows. */
export declare function buildQueueHintsForTasks(args: {
    tasks: TaskEntity[];
    effectiveConfig: Record<string, unknown> | undefined;
    workspaceStatus: WorkspaceStatusSnapshot | null;
    /** Tasks already filtered (e.g. list-tasks output order). */
    taskRows: TaskEntity[];
}): Array<{
    taskId: string;
    phaseAligned: boolean | null;
    phaseScheduleRelation: PhaseScheduleRelation;
    blockedByDependencies: boolean;
    unmetDependencies: string[];
}>;
