import type { AgStudioCommon } from './agStudioCommon'; import type { AgWidgetForm, AgWidgetFormID } from './agWidgetForm'; import type { StudioIcon } from './icons'; interface AgBaseWidgetToolbarButton { type: 'button'; label: string; icon?: StudioIcon; } export interface AgWidgetToolbarActionParams extends AgStudioCommon { widget: TComp; } export type AgWidgetToolbarAction = (params: AgWidgetToolbarActionParams) => void; export type AgWidgetToolbarButton = AgBaseWidgetToolbarButton & ({ id: string; } | { action: AgWidgetToolbarAction; }); export type AgWidgetToolbarItem = AgWidgetToolbarButton; export interface AgWidgetSize { width: number; height: number; } export interface AgWidgetCrossFilterConfig { supportsHighlight?: boolean; } export type AgWidgetFrameStyle = 'none' | 'border'; export interface AgWidgetFeatureConfig { /** * Used if the widget supports cross filter highlighting. */ crossFilter?: AgWidgetCrossFilterConfig; /** * Whether CSV data export is available for this widget. * @default true */ csvExport?: boolean; } export interface AgWidgetConfig { data?: AgWidgetForm; toolbar?: AgWidgetToolbarItem[]; defaultSize?: AgWidgetSize; minSize?: AgWidgetSize; frame?: AgWidgetFrameStyle; /** * @deprecated v1.1 Use `featureConfig?.crossFilter` instead. */ crossFilter?: AgWidgetCrossFilterConfig; featureConfig?: AgWidgetFeatureConfig; /** * Options passed to widgets. * - `AgGridWidgetOptions` for widget type `grid` * - `AgChartWidgetOptions` for all chart widget types * - `AgGaugeWidgetOptions` for all gauge widget types */ options?: TOptions; } export {};