import type { Profile } from '../interfaces/profile.interface.js'; import type { TagSeverity } from '../analysis/profiler-tag.interface.js'; export interface GlobalPanelDescriptor { name: string; label: string; icon?: string; data: unknown; templatePath?: string; badge?: number; group?: string; groupLabel?: string; note?: string; } export interface IProfilerCollector { readonly name: string; readonly label?: string; readonly icon?: string; readonly priority?: number; readonly scope?: 'profile' | 'global'; readonly group?: string; readonly groupLabel?: string; readonly groupIcon?: string; readonly groupPriority?: number; getBadgeValue?(profile: Profile): string | number | null; getBadgeSeverity?(profile: Profile): TagSeverity | null; getTemplatePath?(): string | undefined; expandGlobalPanels?(data: unknown): GlobalPanelDescriptor[]; collect(profile: Profile): unknown; }