import { S as ServerClient } from './ServerClient-a1de039c';
import { C as Component } from './Component-1d0e5b9b';
import { C as ChartDataOptions } from './ChartDataOptions-a959434c';
import { Selection, BaseType } from 'd3';
import { P as PlaybackControls } from './PlaybackControls-652da000';

declare class TsqExpression extends ChartDataOptions {
    private instanceObject;
    private variableObject;
    constructor(instanceObject: any, variableObject: any, searchSpan: any, colorOrOptionsObject: any, alias?: string, contextMenu?: Array<any>);
    toTsq(roundFromTo?: boolean, getEvents?: boolean, getSeries?: boolean): {
        getEvents: {};
        getSeries?: undefined;
        aggregateSeries?: undefined;
    } | {
        getSeries: {};
        getEvents?: undefined;
        aggregateSeries?: undefined;
    } | {
        aggregateSeries: {};
        getEvents?: undefined;
        getSeries?: undefined;
    };
    toStatsTsq(fromMillis: any, toMillis: any): {
        getEvents: {};
        getSeries?: undefined;
        aggregateSeries?: undefined;
    } | {
        getSeries: {};
        getEvents?: undefined;
        aggregateSeries?: undefined;
    } | {
        aggregateSeries: {};
        getEvents?: undefined;
        getSeries?: undefined;
    };
}

declare class TsqRange {
    from: Date;
    to: Date;
    private bucketSizeMs;
    static NeatIntervals: string[];
    static NeatIntervalsMs: number[];
    constructor(from: Date, to: Date);
    setNeatBucketSizeByNumerOfBuckets(targetNumberOfBuckets: number): void;
    setNeatBucketSizeByRoughBucketSize(roughBucketSizeMillis: number): void;
    alignWithServerEpoch(): void;
    get fromMillis(): number;
    get toMillis(): number;
    get bucketSizeMillis(): number;
    get bucketSizeStr(): string;
    static millisToLargestUnit(interval: number): {
        value: number;
        unit: string;
    };
}

declare type d3Selection = Selection<BaseType, unknown, null, undefined>;
interface GraphicInfo {
    graphic: any;
    width: number;
    height: number;
}
declare abstract class HistoryPlayback extends Component {
    protected targetElement: d3Selection;
    protected tsqExpressions: Array<TsqExpression>;
    protected componentContainer: d3Selection;
    protected component: d3Selection;
    protected playbackControlsContainer: d3Selection;
    protected playbackControls: PlaybackControls;
    protected graphicOriginalWidth: number;
    protected graphicOriginalHeight: number;
    protected serverClient: ServerClient;
    protected currentCancelTrigger: Function;
    protected availabilityInterval: number;
    protected environmentFqdn: string;
    protected availability: TsqRange;
    protected getAuthToken: () => Promise<string>;
    protected playbackRate: number;
    protected graphic: any;
    readonly numberOfBuckets = 1000;
    readonly defaultPlaybackRate = 3000;
    readonly fetchAvailabilityFrequency = 30000;
    readonly playbackSliderHeight = 88;
    readonly previewApiFlag = "?api-version=2018-11-01-preview";
    constructor(renderTarget: Element);
    protected abstract loadResources(): Promise<any>;
    protected abstract draw(): any;
    protected abstract updateDataMarkers(data: Array<any>): void;
    protected abstract getDataPoints(data: Array<any>): void;
    protected onGraphicLoaded(): void;
    protected renderBase(environmentFqdn: string, getToken: () => Promise<string>, data: Array<TsqExpression>, chartOptions: any): void;
    pauseAvailabilityUpdates(): void;
    private pollAvailability;
    private onSelecTimestamp;
    private calcQueryWindow;
    protected drawBase(): void;
    private updateAvailability;
    private parseAvailabilityResponse;
}

export { GraphicInfo as G, HistoryPlayback as H, TsqExpression as T };
