import * as React from 'react'; import type { DashboardWidgetSpec, WidgetData, WidgetSize } from '../dashboard-types'; /** Maps a widget size to its column span in the 4-col grid. */ export declare const SIZE_SPAN: Record; /** Tailwind col-span class per size (static → scanned in this package build). * Grid is 2 cols on mobile, 4 on lg: sm=quarter, md=half, lg=¾, full=row. */ export declare const SIZE_CLASS: Record; /** Default footprint when a spec omits `size`: charts go half-width, stats a * quarter — so a tablero of mixed widgets packs densely without manual sizing. */ export declare function defaultSize(spec: DashboardWidgetSpec): WidgetSize; /** Combined col + row span for a widget's grid cell. Row-span drives the * height contrast (chart=2, stat=1) that makes the layout feel designed. */ export declare function spanClass(spec: DashboardWidgetSpec): string; /** True for chart/list widgets that occupy 2 rows. Used to order compact KPIs * before charts in the unified grid so the top reads as a metric band. */ export declare function isTallWidget(spec: DashboardWidgetSpec): boolean; export interface WidgetRendererProps { spec: DashboardWidgetSpec; data?: WidgetData; locale?: string; currency?: string; /** Translated empty fallback for this widget. */ emptyText: string; /** Translated error message for this widget. */ errorText: string; } /** * Renders one widget. `kind:"custom"` defers to the federated slot * (`spec.slot ?? 'dashboard.widgets'`) inside the same card chrome so it * combines with the declarative widgets. */ export declare function WidgetRenderer({ spec, data, locale, currency, emptyText, errorText, }: WidgetRendererProps): React.JSX.Element; /** Skeleton placeholder shown per widget while data loads. */ export declare function WidgetSkeleton({ spec }: { spec: DashboardWidgetSpec; }): React.JSX.Element; //# sourceMappingURL=widget-renderer.d.ts.map