import { InputDescriptor, TextDescriptor } from '../../../types/FieldDescriptor'; import { CuringDescriptorState, CuringFormStateKey } from '../types'; import { CuringSectionDescriptor } from './section'; export declare const SPT_THRESHOLD = 183; /** * The current-year day count short-circuits the rest of the test: under 31 * days in the current year, the user cannot meet SPT regardless of the * prior two years, so we hide those inputs + the weighted-total entirely. */ export declare const MIN_CURRENT_YEAR_DAYS_FOR_SPT = 31; export declare const sptCurrentYearDaysDescriptor: InputDescriptor; export declare const sptPriorYearDaysDescriptor: InputDescriptor; export declare const sptTwoPriorYearDaysDescriptor: InputDescriptor; /** * The computed weighted-total value (`derived.sptWeightedTotal`) rendered as * the content of a label-less field row. * * - Under 183 → `getStatus` carries the passes copy (green/success * variant), confirming the user does not meet SPT. * - At or above 183 → `getErrors` carries the fails copy (red/error * variant) with the actual total interpolated. The day inputs no longer * flag this themselves, so their per-input calculation status stays * visible alongside the section-level error. */ export declare const sptWeightedTotalDescriptor: TextDescriptor; /** * Weighted-total section. Title is just "Weighted total"; subtitle carries * the "must be less than 183" rule with the threshold interpolated. Hidden * when the user is under the 31-day current-year short-circuit — at that * point the prior-2-year inputs are also hidden and there's nothing * meaningful to weight. */ export declare const sptWeightedTotalSection: CuringSectionDescriptor; /** * SPT sub-form. Visible only when the user picks "Do Not Meet SPT" as their * reasonable explanation; the parent reasonable-explanation section already * gates on `hasOpenUsIndiciaIssue`, so this just adds the second-level * `isSptSelected` predicate. */ export declare const sptSection: CuringSectionDescriptor;