UNPKG

agentic-ui-libs

Version:

A modular, config-driven analytics library for React and Angular applications

472 lines 12.3 kB
export interface Icon { name: string; type?: 'human' | 'logo' | 'icon' | 'inlineTool' | 'toolLibrary' | 'KNOWLEDGE' | 'MCP'; color?: string; } export interface DataPoint { id?: string; name?: string; avatar?: string; icon?: Icon | string; runs?: number; responseTime?: string; tokens?: number; [key: string]: any; } export interface Environment { _id: string; envName: string; appId: string; description: string; isEnabled: boolean; status: string; appVersion: { versionName: string; status: string; versionComments?: string; }; } export interface MetricData { title: string; value: number | string; change?: { value: number; type: 'increase' | 'decrease'; }; icon?: string; info?: string; highlighted?: boolean; metricType?: 'users' | 'sessions' | 'messages' | 'tokens' | 'agentRuns' | 'toolRuns' | 'modelRuns'; view?: ViewConfig; controls?: ControlsConfig; } export interface ColorPalette { primary: string[]; secondary: string[]; accent: string[]; semantic: { success: string; warning: string; error: string; info: string; }; gradients?: { [key: string]: string[]; }; } export interface ChartLineConfig { dataKey: string; color: string; label: string; strokeWidth?: number; strokeDasharray?: string; gradient?: { enabled: boolean; colors: string[]; direction?: 'horizontal' | 'vertical'; }; opacity?: number; } export interface TooltipConfig { show?: boolean; style?: 'default' | 'dark'; formatter?: (value: any, name: string, props: any) => [string, string]; labelFormatter?: (label: string) => string; } export interface ChartConfig { type: 'line' | 'bar' | 'area' | 'pie'; title: string; data: DataPoint[]; dataKey?: string; color?: string; lines?: ChartLineConfig[]; yAxisLabel?: string; xAxisLabel?: string; dateRange?: { start: string; end: string; }; tooltip?: TooltipConfig; height?: number; showLegend?: boolean; legendPosition?: 'top' | 'bottom' | 'left' | 'right' | 'bottom-left' | 'bottom-right'; showGrid?: boolean; curve?: 'monotone' | 'linear' | 'step'; } export interface TableColumnConfig { key: string; title: string; width?: number; align?: 'left' | 'center' | 'right'; sortable?: boolean; filterable?: boolean; formatter?: (value: any, row: DataPoint) => string | React.ReactNode; render?: (value: any, row: DataPoint) => React.ReactNode; } export interface TableConfig { title: string; data: DataPoint[]; columns: TableColumnConfig[]; pagination?: { enabled: boolean; pageSize: number; showSizeChanger?: boolean; }; sorting?: { enabled: boolean; defaultSort?: { key: string; order: 'asc' | 'desc'; }; }; filtering?: { enabled: boolean; searchable?: boolean; }; actions?: { enabled: boolean; items: Array<{ label: string; action: (row: DataPoint) => void; icon?: string; }>; }; } export type ViewType = 'chart' | 'table' | 'mixed'; export interface ViewConfig { type: ViewType; chart?: ChartConfig; table?: TableConfig; layout?: 'horizontal' | 'vertical'; } export interface DropdownOption { label: string; value: string; avatar?: string; icon?: string; disabled?: boolean; type?: string; } export interface ControlsConfig { dropdown?: { label: string; options: DropdownOption[]; defaultValue?: string | string[]; multiSelect?: boolean; searchable?: boolean; onChange?: (value: string | string[]) => void; }; buttons?: Array<{ label: string; value: string; icon?: string; active?: boolean; onClick?: (value: string) => void; }>; toggle?: { chartView: boolean; tableView: boolean; onToggle?: (view: 'chart' | 'table') => void; }; } export interface DashboardSection { id: string; title: string; description?: string; metrics: MetricData[]; view: ViewConfig; controls?: ControlsConfig; dataSource?: { endpoint?: string; refreshInterval?: number; transformer?: (data: any) => DataPoint[]; }; layout?: { span?: number; order?: number; responsive?: { mobile?: number; tablet?: number; desktop?: number; }; }; } export interface DateRange { from?: Date; to?: Date; } export interface GlobalControlsConfig { draft?: { label: string; options: DropdownOption[]; defaultValue?: string; onChange?: (value: string) => void; }; timeRange?: { label: string; options?: DropdownOption[]; defaultValue?: string; onChange?: (value: string | DateRange) => void; useDatePicker?: boolean; }; export?: { enabled: boolean; formats?: Array<'csv' | 'json' | 'pdf'>; onExport?: (format: string) => void; }; refresh?: { enabled: boolean; interval?: number; onRefresh?: () => void; }; } export interface DashboardConfig { id: string; title: string; subtitle?: string; version?: string; sections: DashboardSection[]; globalControls?: GlobalControlsConfig; layout?: { columns?: number; gap?: number; responsive?: boolean; }; theme?: { colors?: { primary?: string; secondary?: string; success?: string; warning?: string; error?: string; }; typography?: { fontFamily?: string; fontSize?: { small?: string; medium?: string; large?: string; }; }; }; } export type ComponentSize = 'sm' | 'md' | 'lg'; export type ComponentVariant = 'default' | 'outline' | 'ghost'; export interface ComponentProps { className?: string; size?: ComponentSize; variant?: ComponentVariant; } export interface DashboardEventHandlers { onSectionChange?: (sectionId: string, data: any) => void; onMetricClick?: (sectionId: string, metric: MetricData) => void; onChartInteraction?: (sectionId: string, data: any) => void; onTableRowClick?: (sectionId: string, row: DataPoint) => void; onControlChange?: (sectionId: string, controlType: string, value: any) => void; onDataRefresh?: (sectionId: string) => void; onError?: (error: Error, context: string) => void; } export interface DataProvider { id: string; name: string; fetch: (config: any) => Promise<DataPoint[]>; transform?: (data: any) => DataPoint[]; cache?: { enabled: boolean; ttl: number; }; } export interface AnalyticsPlugin { id: string; name: string; version: string; components?: { charts?: Record<string, React.ComponentType<any>>; tables?: Record<string, React.ComponentType<any>>; controls?: Record<string, React.ComponentType<any>>; }; dataProviders?: DataProvider[]; themes?: Record<string, any>; } export interface ApiHeaders { authorization?: string; accountId?: string; 'Content-Type'?: string; [key: string]: string | undefined; } export interface AppConfig { baseUrl: string; dashboardType?: 'agenticDashboard' | 'langfuseDashboard'; projectId: string; environment: string; headers?: ApiHeaders; defaultTimeRange?: { fromTimestamp: string; toTimestamp: string; }; refreshInterval?: number; } export interface ApiResponse<T = any> { result: { data: { json: T; meta?: any; }; }; } export interface UsageAnalyticsCards { type: 'cards'; category: 'usage-analytics'; data: { users: number; sessions: number; messages: { input: number; output: number; total: number; }; tokens: { input: number; output: number; total: number; }; trends?: { users: { previous: number; change: number; changePercent: number; }; sessions: { previous: number; change: number; changePercent: number; }; messages: { previous: { input: number; output: number; total: number; }; change: { input: number; output: number; total: number; }; changePercent: { input: number; output: number; total: number; }; }; tokens: { previous: { input: number; output: number; total: number; }; change: { input: number; output: number; total: number; }; changePercent: { input: number; output: number; total: number; }; }; }; }; includeTrends?: boolean; } export interface RunsCards { type: 'cards'; category: 'runs'; data: { agentRuns: number; toolRuns: { codeTools: number; libraryTools: number; knowledgeTools: number; mcpTools: number; total: number; }; modelRuns: number; trends?: { agentRuns: { previous: number; change: number; changePercent: number; }; toolRuns: { previous: { codeTools: number; libraryTools: number; knowledgeTools: number; mcpTools: number; total: number; }; change: { codeTools: number; libraryTools: number; knowledgeTools: number; mcpTools: number; total: number; }; changePercent: { codeTools: number; libraryTools: number; knowledgeTools: number; mcpTools: number; total: number; }; }; modelRuns: { previous: number; change: number; changePercent: number; }; }; }; includeTrends?: boolean; } export interface TimeSeriesDataPoint { timestamp: string; count: number; input_tokens?: number; output_tokens?: number; listView?: Array<{ modelName?: string; provider?: string; agentName?: string; toolName?: string; toolType?: string; icon?: string; count: number; totalInputTokens?: number; totalOutputTokens?: number; totalTokens?: number; avgResponseTime?: number; }>; } export interface TimeSeriesResponse { type: 'time-series'; category: 'usage-analytics' | 'runs'; metric: string; data: TimeSeriesDataPoint[]; rawData?: any[]; groups?: any[]; } export interface ApiRequestParams { projectId: string; type: 'cards' | 'time-series'; category: 'usage-analytics' | 'runs'; envId: string; fromTimestamp: string; toTimestamp: string; filter?: any[]; metric?: string; timeDimension: 'day' | 'hour' | 'week' | 'month'; includeTrends?: boolean; } //# sourceMappingURL=index.d.ts.map