import type { EChartsOption } from 'echarts'; export type ViewMode = 'view' | 'edit'; export type ViewFrame = 'auto' | 'standard' | 'wide' | 'tablet' | 'mobile' | 'report'; export type LayoutMode = 'row-based' | 'freeform'; export type WidgetKind = 'counter' | 'area' | 'donut' | 'bar' | 'heatmap' | 'table' | 'section' | 'text' | 'incident-table' | 'ranked-list' | 'ai-summary'; export type SectionBgColor = 'transparent' | 'surface' | 'blue' | 'indigo' | 'teal'; export interface WidgetLayout { x: number; y: number; w: number; h: number; minW: number; minH: number; maxW?: number; maxH?: number; } export interface WidgetConfig { id: string; title: string; kind: WidgetKind; layout: WidgetLayout; /** Whether the widget has been configured via the config modal at least once */ isConfigured?: boolean; dataConfig?: { dataSource?: string; groupBy?: string; aggregation?: string; limit?: number; }; sectionConfig?: { bgColor?: SectionBgColor; }; textConfig?: { content?: string; showTitle?: boolean; showBg?: boolean; bold?: boolean; italic?: boolean; align?: 'left' | 'center' | 'right'; }; } export interface DashboardModel { id: string; name: string; createdAt: string; updatedAt: string; layoutEngine: 'gridstack'; widgets: WidgetConfig[]; } export interface PaletteItem { label: string; kind: WidgetConfig['kind']; description?: string; } export interface WidgetOptionFactory { (widget: WidgetConfig): EChartsOption; } export declare const PALETTE_ITEMS: PaletteItem[];