import CanvasTrack from '../canvas-track';
import { DebounceFunction } from '../../utils';
import { Plot } from '../../plots';
import { Scale } from '../../common/interfaces';
import { GraphTrackOptions } from './interfaces';
import { OnMountEvent, OnRescaleEvent, OnUpdateEvent } from '../interfaces';
/**
 * An extension to CanvasTrack for rendering plots
 *
 * See ./readme.md in source code for more info
 */
export default class GraphTrack extends CanvasTrack<GraphTrackOptions> {
    trackScale: Scale;
    plots: Plot[];
    debounce: DebounceFunction;
    private _transformedData?;
    private _transformCondition?;
    constructor(id: string | number, options?: GraphTrackOptions);
    /**
     * Override of onMount to load track data
     */
    onMount(trackEvent: OnMountEvent): void;
    /**
     * Override to allow data transformations, like resampling and filtering
     */
    onRescale(trackEvent: OnRescaleEvent): void;
    /**
     * Override to resize plots and scales
     */
    onUpdate(trackEvent: OnUpdateEvent): void;
    /**
     * Callback after data loaded, using loadData.
     */
    onDataLoaded(data: any): void;
    /**
     * Create range based on domain.
     */
    createRange(isHorizontal: boolean): number[];
    /**
     * Set new range to track and plot scales
     */
    updateRange(): void;
    /**
     * Execute configured transform function if applicable on the track's data
     */
    prepareData(): void;
    updateDynamicScales(): void;
    getCurrentCondition(): number;
    scheduleUpdateTransform(condition: number): void;
    updateTransform(condition: number): void;
    /**
     * Set option on a Plot by id
     */
    setPlotOption(id: string | number, key: string, value: any): GraphTrack;
    /**
     * Set padding on track
     */
    setPadding(): void;
    /**
     * Plot graph track
     */
    plot(): void;
    /** Updates all plots with data by triggering each plot's data accessor function. */
    setPlotData(data: any): void;
}
