import { OnInit, OnDestroy, AfterViewInit, ElementRef, OnChanges, SimpleChanges, EventEmitter } from '@angular/core';
import { TrendData } from '../../services/ai-instrumentation.service';
import * as i0 from "@angular/core";
export interface TimeSeriesConfig {
    width?: number;
    height?: number;
    margin?: {
        top: number;
        right: number;
        bottom: number;
        left: number;
    };
    showGrid?: boolean;
    showTooltip?: boolean;
    animationDuration?: number;
    colors?: string[];
    useDualAxis?: boolean;
}
export interface DataPointClickEvent {
    data: TrendData;
    metric: string;
    event: MouseEvent;
}
export declare class TimeSeriesChartComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {
    data: TrendData[];
    title?: string;
    config: TimeSeriesConfig;
    showLegend: boolean;
    showControls: boolean;
    dataPointClick: EventEmitter<DataPointClickEvent>;
    timeRangeChange: EventEmitter<string>;
    chartSvg: ElementRef<SVGElement>;
    tooltip: ElementRef<HTMLDivElement>;
    private svg;
    private width;
    private height;
    private margin;
    private defaultColors;
    visibleMetrics: string[];
    private hiddenMetrics;
    ngOnInit(): void;
    /**
     * Reads chart-series colors from CSS custom properties so D3 can use
     * resolved values for color interpolation while remaining themeable.
     */
    private getDefaultColors;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    private applyConfig;
    private initChart;
    private updateChart;
    private calculateDimensions;
    private drawChart;
    private createMetricScales;
    private drawGrid;
    private drawAxes;
    private drawMetrics;
    private drawInteractiveElements;
    private findClosestDataPoint;
    private showTooltip;
    private hideTooltip;
    private getMetricValue;
    getMetricColor(metric: string): string;
    getMetricLabel(metric: string): string;
    isMetricVisible(metric: string): boolean;
    toggleMetric(metric: string): void;
    private getTimeFormat;
    private getOptimalTickCount;
    static ɵfac: i0.ɵɵFactoryDeclaration<TimeSeriesChartComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TimeSeriesChartComponent, "app-time-series-chart", never, { "data": { "alias": "data"; "required": false; }; "title": { "alias": "title"; "required": false; }; "config": { "alias": "config"; "required": false; }; "showLegend": { "alias": "showLegend"; "required": false; }; "showControls": { "alias": "showControls"; "required": false; }; }, { "dataPointClick": "dataPointClick"; "timeRangeChange": "timeRangeChange"; }, never, never, false, never>;
}
//# sourceMappingURL=time-series-chart.component.d.ts.map