import { EColorMode } from '@qn-pandora/pandora-app-component';
import { ELabelType } from '../../../../../constants/chart-style';
import OneDLegend, { IOneDLegend } from '../../components/one-d-legend';
import OneDChartStyleService, { IOneDChartStyle } from '../one-d';
import ILegendChartStyleService from '../legend';
export interface IPieChartStyle extends IOneDChartStyle {
    legend: IOneDLegend;
    maxSlices: number[];
    sectorOffset?: number;
    labelTypes: ELabelType[];
    colorMode: EColorMode;
    tooltipAppendToBody?: boolean;
}
export default abstract class PieBaseStyleService<T extends IPieChartStyle = IPieChartStyle> extends OneDChartStyleService<T> implements ILegendChartStyleService<OneDLegend> {
    legend: OneDLegend;
    maxSlices: number[];
    labelTypes: ELabelType[];
    colorMode: EColorMode;
    tooltipAppendToBody: boolean;
    abstract sectorOffset?: number;
    getOptions(): IPieChartStyle;
    setMaxSlices(maxSlices: number[]): void;
    setSectorOffset(sectorOffset: number): void;
    setLabelTypes(labelTypes: ELabelType[]): void;
    setColorMode(colorMode: EColorMode): void;
    /**
     * 批量修改styleOption装饰过的值
     * WARNING: 在父级类中使用请注意，此赋值方法也会识别到子类中styleOption装饰的
     * @param obj 赋值操作的map映射
     * @param allowNil 对obj中的nil值是否进行赋值操作
     */
    set(obj: Partial<T>, allowNil?: boolean): void;
    /**
     * 单独修改某个styleOption装饰过的值
     * @param key 被装饰过的值的名称，如果名称不存在，或者未被装饰则函数调用无效
     * @param value 值
     */
    set<K extends keyof T>(key: K, value: T[K]): void;
    constructor(chart: T);
}
