import * as react_jsx_runtime from 'react/jsx-runtime'; import { CardVariantProps } from '@kopexa/theme'; import { ImpactLevel, ImpactScalePreset, ImpactScaleConfig } from './scales.js'; import 'react-intl'; interface ImpactValue { /** Rating 0-5. Vertraulichkeit (Confidentiality). */ impactConfidentiality: ImpactLevel; /** Rating 0-5. Integrität (Integrity). */ impactIntegrity: ImpactLevel; /** Rating 0-5. Verfügbarkeit (Availability) - DORA Critical! */ impactAvailability: ImpactLevel; /** Rating 0-5. Authentizität (Authenticity/Accountability). */ impactAuthenticity?: ImpactLevel; /** Human-readable explanation for the chosen impact scores. Focus on the highest score. */ impactJustification?: string; } interface ImpactCardProps { /** The impact data */ value?: ImpactValue; /** Callback when the impact changes */ onChange?: (impact: ImpactValue) => void; /** Show justification field */ showJustification?: boolean; /** Show authenticity as 4th dimension (CIAA) */ showAuthenticity?: boolean; /** Make the component read-only */ readOnly?: boolean; /** Scale preset or custom scale config */ scale?: ImpactScalePreset | ImpactScaleConfig; /** Custom title for the card */ title?: string; /** * Display variant: * - `card`: Wrapped in a Card with edit/save/cancel buttons (default) * - `inline`: No card wrapper, always editable, changes propagate immediately */ variant?: "card" | "inline"; /** Show attention indicator when impact values need to be filled */ needsAttention?: boolean; /** Props forwarded to the underlying `Card.Root` (e.g. `spacing`, `shadow`, `radius`). Only applies when `variant="card"`. */ cardProps?: CardVariantProps; /** Size of the edit icon button. Only applies when `variant="card"`. */ editButtonSize?: "sm" | "md" | "lg"; } declare function ImpactCard({ value, onChange, showJustification, showAuthenticity, readOnly, scale, title, variant, needsAttention, cardProps, editButtonSize, }: ImpactCardProps): react_jsx_runtime.JSX.Element; export { ImpactCard, type ImpactCardProps, type ImpactValue };