import { default as React } from 'react';
import { SemanticColor } from '../types';
import { TimeSeriesDef, ChartTimeRange, ChartAnnotation, ChartEventMarker, MetricFormat, RefreshInterval } from './types';
import { ChartMargin } from './TimeSeriesChart';
import { TimeRangePreset } from '../inputs/TimeRangePicker';
export interface MetricsPanelMenuItem {
    label: string;
    onClick: () => void;
}
export interface MetricsPanelProps {
    title: string;
    /** Small icon rendered before the title for quick scanning */
    icon?: React.ReactNode;
    /** Muted subtitle below title (e.g. "From Kubernetes Metrics Server") */
    subtitle?: string;
    series: TimeSeriesDef[];
    timeRange: ChartTimeRange;
    onTimeRangeChange?: (range: ChartTimeRange) => void;
    refreshInterval?: RefreshInterval;
    onRefresh?: () => void;
    valueFormat?: MetricFormat;
    unit?: string;
    valueFormatter?: (value: number | null) => string;
    annotations?: ChartAnnotation[];
    /** Lens-style vertical event markers at specific timestamps */
    eventMarkers?: ChartEventMarker[];
    area?: boolean;
    presets?: TimeRangePreset[];
    colors?: (SemanticColor | string)[];
    /** @deprecated Use `toolbar` instead */
    headerActions?: React.ReactNode;
    /** Slot for icon buttons rendered in the header row */
    toolbar?: React.ReactNode;
    /** Three-dot menu items (top-right) */
    menuItems?: MetricsPanelMenuItem[];
    /** Position of the y-axis. Default: 'none' */
    yAxisPosition?: 'left' | 'right' | 'none';
    /** Position of the x-axis. Default: 'none' */
    xAxisPosition?: 'bottom' | 'top' | 'none';
    /** Override chart margins (space between SVG edge and axes). Partial — unset keys use defaults. */
    margin?: ChartMargin;
    /** Override y-axis width (space for tick labels). */
    yAxisWidth?: number;
    /** Override x-axis height (space for tick labels). */
    xAxisHeight?: number;
    /** Render y-axis labels inside the chart area (Grafana/Lens style). Default: true */
    yAxisInline?: boolean;
    /** Which side to render inline y-axis labels. Default: 'right' */
    yAxisInlinePosition?: 'left' | 'right';
    /** 'compact' = minimal padding, no outer border. Default: 'default' */
    variant?: 'default' | 'compact';
    height?: number;
    loading?: boolean;
    error?: string;
    onRetry?: () => void;
}
declare function MetricsPanel({ title, icon, subtitle, series, timeRange, onTimeRangeChange, refreshInterval, onRefresh, valueFormat, unit, valueFormatter, annotations, eventMarkers, area, presets, colors, headerActions, toolbar, menuItems, yAxisPosition, xAxisPosition, margin, yAxisWidth, xAxisHeight, yAxisInline, yAxisInlinePosition, variant, height, loading, error, onRetry, }: MetricsPanelProps): import("react/jsx-runtime").JSX.Element;
declare namespace MetricsPanel {
    var displayName: string;
}
export default MetricsPanel;
