import { HTMLAttributes, ReactNode, ComponentType, CSSProperties } from 'react'; import { ChartType, DashboardFilter, DashboardLayoutMode, PortletConfig } from '../../types.js'; import { ColorPalette } from '../../utils/colorPalettes.js'; export interface DashboardPortletCardProps { portlet: PortletConfig; editable: boolean; layoutMode?: DashboardLayoutMode; dashboardFilters?: DashboardFilter[]; configEagerLoad?: boolean; loadingComponent?: ReactNode; colorPalette?: ColorPalette; containerProps?: HTMLAttributes; headerProps?: HTMLAttributes; setPortletRef: (portletId: string, element: HTMLDivElement | null) => void; setPortletComponentRef: (portletId: string, element: { refresh: (options?: { bustCache?: boolean; }) => void; } | null) => void; callbacks: { onToggleFilter: (portletId: string, filterId: string) => void; onRefresh: (portletId: string, options?: { bustCache?: boolean; }) => void; onDuplicate: (portletId: string) => void; onEdit: (portlet: PortletConfig) => void; onDelete: (portletId: string) => void; onOpenFilterConfig: (portlet: PortletConfig) => void; }; icons: { RefreshIcon: ComponentType<{ className?: string; style?: CSSProperties; }>; EditIcon: ComponentType<{ className?: string; style?: CSSProperties; }>; DeleteIcon: ComponentType<{ className?: string; style?: CSSProperties; }>; CopyIcon: ComponentType<{ className?: string; style?: CSSProperties; }>; FilterIcon: ComponentType<{ className?: string; style?: CSSProperties; }>; }; } export type { ChartType }; export declare function shallowEqualObjects(a: T | undefined, b: T | undefined): boolean; export declare function arePropsEqual(prevProps: DashboardPortletCardProps, nextProps: DashboardPortletCardProps): boolean;