import { AbstractChartRenderer, Chart } from '../index';
import { ClickObject } from './Chart';
export declare class AbstractSvgChartRenderer extends AbstractChartRenderer {
    chartBox: ChartBox;
    /** Clipping and masking */
    clipId: string;
    maskId: string;
    suppressLegendBox: boolean;
    height: number;
    width: number;
    chartAnimationStopping: boolean;
    $svg: JQuery<SVGElement>;
    protected _nonValueClickHandler: (event: JQuery.ClickEvent) => void;
    constructor(chart: Chart);
    static FONT_SIZE_SMALLEST: string;
    static FONT_SIZE_SMALL: string;
    static FONT_SIZE_MIDDLE: string;
    static FONT_SIZE_BIG: string;
    protected _render(): void;
    /**
     * Links chart svg with its field label so the field name is read when entering the chart
     *
     * @see <a href="https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby">ARIA: aria-labelledby</a>
     */
    linkChartWithFieldLabel($chartSvg: JQuery<Element>): void;
    protected _renderInternal(): void;
    protected _useFontSizeBig(): boolean;
    protected _useFontSizeMiddle(): boolean;
    protected _useFontSizeSmall(): boolean;
    protected _useFontSizeSmallest(): boolean;
    remove(requestAnimation?: boolean, afterRemoveFunc?: (chartAnimationStopping?: boolean) => void): void;
    protected _remove(afterRemoveFunc: (chartAnimationStopping?: boolean) => void): void;
    /**
     * For all parameters: use null when parameter is not used or set by a chart type.
     */
    protected _createClickObject(xIndex: number, datasetIndex: number): ClickObject;
    protected _onChartValueClick(event: JQuery.ClickEvent): void;
    protected _onNonValueClick(event: JQuery.ClickEvent): void;
    protected _measureText(text: string, legendLabelClass?: string): {
        height: number;
        width: number;
    };
    protected _renderLine(x1: number, y1: number, x2: number, y2: number, lineClass: string): JQuery<SVGElement>;
    protected _renderLineLabel(x: number, y: number, label: string, labelClass: string, drawBackground: boolean): JQuery<SVGElement>;
    protected _initChartBox(): void;
    protected _createAnimationObjectWithTabIndexRemoval<T>(animationFunc: (now: number, tween: JQuery.Tween<T>) => void, duration?: number): JQuery.EffectsOptions<T>;
    protected _addClipping(cssClass: string): void;
    protected _renderWireLegend(text: string, legendPositions: LegendPositions, className: string, drawBackgroundBox?: boolean): Legend;
}
export type ChartBox = {
    width: number;
    height: number;
    xOffset: number;
    yOffset: number;
    mX: () => number;
    mY: () => number;
};
export type Legend = {
    $field?: JQuery;
    detachFunc: () => void;
    attachFunc: () => void;
    removeFunc: () => void;
};
export type LegendPositions = {
    x1: number;
    x2: number;
    y1: number;
    y2: number;
    v: number;
    h: number;
    autoPosition: boolean;
    posFunc: (labelWidth: number, labelHeight: number) => LegendPositions;
};
//# sourceMappingURL=AbstractSvgChartRenderer.d.ts.map