import { Chart } from '../index';
import { PropertyChangeEvent, PropertyEventEmitter, PropertyEventMap, Session } from '@eclipse-scout/core';
import { UpdateChartOptions } from './Chart';
export declare class AbstractChartRenderer extends PropertyEventEmitter {
    eventMap: AbstractChartRendererEventMap;
    chart: Chart;
    session: Session;
    /** true while this.render() is executing */
    rendering: boolean;
    rendered: boolean;
    /** set by render() and remove(), makes it unnecessary to carry an argument through all method calls */
    animationDuration: number;
    firstOpaqueBackgroundColor: string;
    constructor(chart: Chart);
    validate(): boolean;
    protected _validateChartData(): boolean;
    protected _validate(): boolean;
    /**
     * @param requestAnimation
     *          Whether animations should be used while rendering the chart. Note that his
     *          property is ignored when chart.config.options.animation.duration is <code>0</code>!
     */
    render(requestAnimation: boolean): void;
    protected _render(): void;
    renderCheckedItems(): void;
    protected _renderCheckedItems(): void;
    /**
     * @param requestAnimation
     *          Whether animations should be used while updating the chart. Note that his
     *          property is ignored when chart.config.options.animation.duration is <code>0</code>!
     */
    updateData(requestAnimation: boolean): void;
    protected _updateData(): void;
    isDataUpdatable(): boolean;
    isDetachSupported(): boolean;
    refresh(): void;
    setAnimationDuration(animationDuration: number): void;
    protected _setAnimationDuration(animationDuration: number): void;
    protected _renderAnimationDuration(): void;
    /**
     * @param requestAnimation
     *          Whether animations should be used while removing the chart. Note that his
     *          property is ignored when chart.config.options.animation.duration is <code>0</code>!
     */
    remove(requestAnimation?: boolean, afterRemoveFunc?: (chartAnimationStopping?: boolean) => void): void;
    protected _remove(afterRemoveFunc: (chartAnimationStopping?: boolean) => void): void;
    protected _removeAnimated(afterRemoveFunc: (chartAnimationStopping?: boolean) => void): void;
    /**
     * Controls if the animation of the chart is shown when chart data has been updated.
     */
    shouldAnimateRemoveOnUpdate(opts: UpdateChartOptions): boolean;
}
export interface AbstractChartRendererEventMap extends PropertyEventMap {
    'propertyChange:animationDuration': PropertyChangeEvent<number>;
}
//# sourceMappingURL=AbstractChartRenderer.d.ts.map