/**
 * THIS IS GENERATED CODE!
 * PLEASE DO NOT MODIFY - ALL YOUR WORK WOULD BE LOST!
 */
export declare const typescriptDeclarationFixConstant = 1;
import { UiEvent } from "./UiEvent";
import { TeamAppsEvent } from "../modules/util/TeamAppsEvent";
import { UiComponentConfig } from "./UiComponentConfig";
import { UiLongIntervalConfig } from "./UiLongIntervalConfig";
import { UiTimeChartZoomLevelConfig } from "./UiTimeChartZoomLevelConfig";
import { AbstractUiLineChartDataDisplayConfig } from "./AbstractUiLineChartDataDisplayConfig";
import { UiTimeGraphDataPointConfig } from "./UiTimeGraphDataPointConfig";
import { UiLineChartYScaleZoomMode } from "./UiLineChartYScaleZoomMode";
import { UiScaleType } from "./UiScaleType";
import { UiLineChartMouseScrollZoomPanMode } from "./UiLineChartMouseScrollZoomPanMode";
import { UiComponentCommandHandler } from "./UiComponentConfig";
export interface UiTimeGraphConfig extends UiComponentConfig {
    _type?: string;
    yScaleZoomMode?: UiLineChartYScaleZoomMode;
    intervalX: UiLongIntervalConfig;
    zoomLevels: UiTimeChartZoomLevelConfig[];
    maxPixelsBetweenDataPoints: number;
    lines: AbstractUiLineChartDataDisplayConfig[];
    yScaleType?: UiScaleType;
    mouseScrollZoomPanMode?: UiLineChartMouseScrollZoomPanMode;
}
export interface UiTimeGraphCommandHandler extends UiComponentCommandHandler {
    setIntervalX(intervalX: UiLongIntervalConfig): void;
    setMaxPixelsBetweenDataPoints(maxPixelsBetweenDataPoints: number): void;
    addData(zoomLevel: number, intervalX: UiLongIntervalConfig, data: {
        [name: string]: UiTimeGraphDataPointConfig[];
    }): void;
    resetAllData(newZoomLevels: UiTimeChartZoomLevelConfig[]): void;
    replaceAllData(newZoomLevels: UiTimeChartZoomLevelConfig[], zoomLevel: number, intervalX: UiLongIntervalConfig, data: {
        [name: string]: UiTimeGraphDataPointConfig[];
    }): void;
    setMouseScrollZoomPanMode(mouseScrollZoomPanMode: UiLineChartMouseScrollZoomPanMode): void;
    setSelectedInterval(intervalX: UiLongIntervalConfig): void;
    setLines(lines: AbstractUiLineChartDataDisplayConfig[]): void;
    setLine(lineId: string, line: AbstractUiLineChartDataDisplayConfig): void;
    zoomTo(intervalX: UiLongIntervalConfig): void;
}
export interface UiTimeGraphEventSource {
    onDataNeeded: TeamAppsEvent<UiTimeGraph_DataNeededEvent>;
    onZoomed: TeamAppsEvent<UiTimeGraph_ZoomedEvent>;
    onIntervalSelected: TeamAppsEvent<UiTimeGraph_IntervalSelectedEvent>;
}
export interface UiTimeGraph_DataNeededEvent extends UiEvent {
    zoomLevelIndex: number;
    neededIntervalX: UiLongIntervalConfig;
}
export interface UiTimeGraph_ZoomedEvent extends UiEvent {
    intervalX: UiLongIntervalConfig;
    zoomLevelIndex: number;
}
export interface UiTimeGraph_IntervalSelectedEvent extends UiEvent {
    intervalX: UiLongIntervalConfig;
}
