import { DatePipe } from '@angular/common';
import { EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { Chart, ScatterDataPoint } from 'chart.js';
import 'chartjs-adapter-date-fns';
import { DataJobExecutionStatus } from '../../../../../model';
import { GridDataJobExecution } from '../model';
import * as i0 from "@angular/core";
declare type CustomChartData = Partial<ScatterDataPoint> & {
    startTime: number;
    duration: number;
    endTime: string;
    status: DataJobExecutionStatus;
    opId: string;
    id: string;
};
interface ZoomPeriod {
    from: Date;
    to: Date;
}
export declare class ExecutionDurationChartComponent implements OnInit, OnChanges {
    private readonly datePipe;
    jobExecutions: GridDataJobExecution[];
    /**
     * ** Flag that indicates if duration chart is zoomed or not.
     */
    chartZoomed: boolean;
    /**
     * ** Emits event whenever focus on execution changes.
     *
     *      - Value could be either executionId or null.
     */
    executionIdFocused: EventEmitter<string>;
    /**
     * ** Event Emitter that emits events on every user zoom period change in duration chart or reset zoom.
     */
    zoomPeriodChanged: EventEmitter<ZoomPeriod>;
    /**
     * ** Reference to Duration chart instance.
     */
    chart: Chart<'line', CustomChartData[], number>;
    /**
     * ** Currently focussed execution id, it could be either string if there is focussed execution or null if nothing is focussed.
     * @private
     */
    private _focusedExecutionId;
    /**
     * ** Zoom selection reference with from and to values.
     * @private
     */
    private _zoomPeriod;
    constructor(datePipe: DatePipe);
    resetZoom(): void;
    /**
     * @inheritDoc
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * @inheritDoc
     */
    ngOnInit(): void;
    private _initChart;
    private _updateChart;
    private _getChartLabels;
    private _getChartData;
    private _getTimeScaleUnit;
    private _getDurationUnit;
    private _getMaxDurationSeconds;
    private _getJobDurationSeconds;
    private _emitFocussedExecutionId;
    private _getMinMaxExecutionTuple;
    private _getMinMaxExecutionTupleAdjusted;
    private _getTimeUnitMilliseconds;
    static ɵfac: i0.ɵɵFactoryDeclaration<ExecutionDurationChartComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ExecutionDurationChartComponent, "lib-execution-duration-chart", never, { "jobExecutions": "jobExecutions"; "chartZoomed": "chartZoomed"; }, { "executionIdFocused": "executionIdFocused"; "zoomPeriodChanged": "zoomPeriodChanged"; }, never, never>;
}
export {};
