import { type CellDecoration } from "./cellDecoration.js"; export type { CellDecoration, CellDecorationIntent } from "./cellDecoration.js"; export type KpiCardSize = "sm" | "md" | "lg"; export type KpiCardTrend = "up" | "down" | "flat"; export type KpiCardFormat = "number" | "currency" | "percent"; export type KpiCardDeltaFormat = "percent" | "absolute"; export type KpiCardTone = "category1" | "category2" | "category3" | "category4" | "category5" | "category6" | "category7" | "category8"; export type KpiCardProps = { /** * Valeur principale. Si `format="percent"`, `value` est une FRACTION (0–1) : * passer `0.42` affiche « 42 % » (Intl multiplie par 100). Le formatage ne * s'applique qu'aux `number` ; une `string` est rendue telle quelle. */ value: number | string; label: string; /** * Variation. En `deltaFormat="percent"` (défaut), `delta` est une FRACTION : * `0.12` → « +12 % ». NaN/Infinity sont rendus inertes. */ delta?: number; deltaFormat?: KpiCardDeltaFormat; trend?: KpiCardTrend; format?: KpiCardFormat; unit?: string; currency?: string; locale?: string; sparkline?: number[]; size?: KpiCardSize; tone?: KpiCardTone; /** * Conditional formatting : décoration sémantique de la carte (intent → token * feedback en fond teinté accessible + icône lucide optionnelle). */ decoration?: CellDecoration; class?: string; }; export declare const KpiCard: import("vue").DefineComponent number | string; required: true; }; label: { type: StringConstructor; required: true; }; delta: { type: NumberConstructor; default: undefined; }; deltaFormat: { type: () => KpiCardDeltaFormat; default: string; }; trend: { type: () => KpiCardTrend; default: undefined; }; format: { type: () => KpiCardFormat; default: string; }; unit: { type: StringConstructor; default: undefined; }; currency: { type: StringConstructor; default: string; }; locale: { type: StringConstructor; default: undefined; }; sparkline: { type: () => number[]; default: undefined; }; size: { type: () => KpiCardSize; default: string; }; tone: { type: () => KpiCardTone; default: undefined; }; decoration: { type: () => CellDecoration; default: undefined; }; class: { type: StringConstructor; default: undefined; }; }>, () => import("vue").VNode, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly number | string; required: true; }; label: { type: StringConstructor; required: true; }; delta: { type: NumberConstructor; default: undefined; }; deltaFormat: { type: () => KpiCardDeltaFormat; default: string; }; trend: { type: () => KpiCardTrend; default: undefined; }; format: { type: () => KpiCardFormat; default: string; }; unit: { type: StringConstructor; default: undefined; }; currency: { type: StringConstructor; default: string; }; locale: { type: StringConstructor; default: undefined; }; sparkline: { type: () => number[]; default: undefined; }; size: { type: () => KpiCardSize; default: string; }; tone: { type: () => KpiCardTone; default: undefined; }; decoration: { type: () => CellDecoration; default: undefined; }; class: { type: StringConstructor; default: undefined; }; }>> & Readonly<{}>, { size: KpiCardSize; class: string; format: KpiCardFormat; tone: KpiCardTone; locale: string; unit: string; currency: string; delta: number; deltaFormat: KpiCardDeltaFormat; trend: KpiCardTrend; sparkline: number[]; decoration: CellDecoration; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; //# sourceMappingURL=KpiCard.d.ts.map