import { Arc, DefaultArcObject } from "d3-shape";
import { Subject } from "rxjs";
import { Renderer } from "../../core/common/renderer";
import { Scales } from "../../core/common/scales/types";
import { IDataSeries, IPosition, IRadialRendererConfig, IRendererEventPayload } from "../../core/common/types";
import { IRenderSeries } from "../types";
import { IRadialAccessors } from "./accessors/radial-accessors";
/**
 * Default configuration for Radial Renderer
 */
export declare const DEFAULT_RADIAL_RENDERER_CONFIG: IRadialRendererConfig;
/**
 * Radial renderer is a generic renderer that is able to draw pie and donut charts
 */
export declare class RadialRenderer extends Renderer<IRadialAccessors> {
    config: IRadialRendererConfig;
    protected segmentWidth?: number;
    /**
     * Creates an instance of RadialRenderer.
     * @param {IRadialRendererConfig} [config]
     * Renderer configuration object. Defaults to `DEFAULT_RADIAL_RENDERER_CONFIG` constant value.
     */
    constructor(config?: IRadialRendererConfig);
    /** See {@link Renderer#draw} */
    draw(renderSeries: IRenderSeries<IRadialAccessors>, rendererSubject: Subject<IRendererEventPayload>): void;
    /** See {@link Renderer#getDataPointPosition} */
    getDataPointPosition(dataSeries: IDataSeries<IRadialAccessors>, index: number, scales: Scales): IPosition | undefined;
    getInnerRadius(range: number[], index: number): number;
    getOuterRadius(range: [number, number], index: number): number;
    protected getArc(range: [number, number], generatedArc: Arc<any, DefaultArcObject>, index: number): Arc<any, DefaultArcObject>;
    protected getSegmentWidth(renderSeries: IRenderSeries<IRadialAccessors>): number | undefined;
    private emitDataPointHighlight;
}
