export type TaskSplitSignals = {
    pathCount: number;
    dependencyCount: number;
    acceptanceCriteriaCount: number;
    roleCount: number;
    phaseCount: number;
    keywordOverlapRatio: number;
    estimatedLinesOfChange: number;
};
export type TaskSplitThresholds = {
    complexityThreshold: number;
    cognitiveLoadThreshold: number;
    compositeThreshold: number;
};
export type TaskSplitAssessmentResult = {
    taskId: string;
    implementationComplexity: number;
    cognitiveLoad: number;
    combinedScore: number;
    oversized: boolean;
    splitReasons: string[];
    signals: TaskSplitSignals;
};
/**
 * Read threshold configuration from `.setup-agents/config.json`.
 * Never throws. Returns defaults if absent or malformed.
 */
export declare function getThresholdConfig(cwd: string): TaskSplitThresholds;
/**
 * Extract raw signals from task metadata, handoff records, and orchestra task files.
 */
export declare function extractTaskSplitSignals(cwd: string, taskId: string): TaskSplitSignals;
/**
 * Compute implementation complexity score (0-100) from signals.
 */
export declare function computeImplementationComplexity(signals: TaskSplitSignals): number;
/**
 * Compute cognitive load score (0-100) from signals.
 * Note: "unresolved risks" maps to dependencyCount as a proxy (risks correlate with dependencies).
 */
export declare function computeCognitiveLoad(signals: TaskSplitSignals): number;
/**
 * Full assessment: extracts signals, computes scores, determines oversized status.
 */
export declare function assessTaskSplit(cwd: string, taskId: string): TaskSplitAssessmentResult;
