import type { LabAnalysisMarkerRowContent, LabResultsMetricContent, QuestionnaireCategoryContent, QuestionnaireTrendZone, TriadResiliencyCategoryContent } from "../../../data";
import type { TriadTrendBarConfig } from "../../../triadTrendIndicator";
import type { SegmentedRangeBarSegment } from "../../composite";
export type MetabolicTriadCategoryPanelMetricRow = {
    label: string;
    value?: string;
    valueVariant?: "default" | "total";
    labelEmphasis?: boolean;
};
export type MetabolicTriadCategoryPanelRangeBarProps = {
    segments: readonly SegmentedRangeBarSegment[];
    indicatorPercent: number;
    indicatorPosition?: "continuous" | "segmentCenter";
};
export type ComparisonRow = {
    label: string;
    labelClassName?: string;
    current: string | undefined;
    previous: string | undefined;
    valueVariant?: "default" | "total";
};
export type MetabolicTriadCategoryPanelProps = {
    layout: "triadResiliency";
    category: TriadResiliencyCategoryContent;
    currentRangeLabel: string;
    previousRangeLabel: string;
    siblingTotals: readonly (number | null)[];
    trendBar?: TriadTrendBarConfig;
    onCategoryClick?: (category: TriadResiliencyCategoryContent) => void;
} | {
    layout: "questionnaire";
    category: QuestionnaireCategoryContent;
    currentRangeLabel?: string;
    previousRangeLabel?: string;
    onInfoClick?: () => void;
    onCategoryClick?: (category: QuestionnaireCategoryContent) => void;
} | {
    layout: "metricRows";
    title: string;
    infoAriaLabel: string;
    infoTooltip?: string;
    onInfoClick?: () => void;
    showInfoButton?: boolean;
    rows: readonly MetabolicTriadCategoryPanelMetricRow[];
    indicatorPercent: number;
    indicatorPosition?: "continuous" | "segmentCenter";
    segments?: readonly SegmentedRangeBarSegment[];
} | {
    layout: "labResults";
    category: LabResultsMetricContent;
    onInfoClick?: () => void;
} | {
    layout: "labAnalysis";
    title: string;
    markers: readonly LabAnalysisMarkerRowContent[];
    trendZone: QuestionnaireTrendZone;
};
