import SeriesModel from '../../model/Series';
import { TreeNode } from '../../data/Tree';
import { SeriesOption, CircleLayoutOptionMixin, LabelOption, ItemStyleOption, OptionDataValue, CallbackDataParams, StatesOptionMixin, OptionDataItemObject } from '../../util/types';
import GlobalModel from '../../model/Global';
interface SunburstLabelOption extends Omit<LabelOption, 'rotate' | 'position'> {
    rotate?: 'radial' | 'tangential' | number;
    minAngle?: number;
    silent?: boolean;
    position?: LabelOption['position'] | 'outside';
}
interface SunburstDataParams extends CallbackDataParams {
    treePathInfo: {
        name: string;
        dataIndex: number;
        value: SunburstSeriesNodeItemOption['value'];
    }[];
}
interface ExtraStateOption {
    emphasis?: {
        focus?: 'descendant' | 'ancestor';
    };
}
export interface SunburstStateOption {
    itemStyle?: ItemStyleOption;
    label?: SunburstLabelOption;
}
export interface SunburstSeriesNodeItemOption extends SunburstStateOption, StatesOptionMixin<SunburstStateOption, ExtraStateOption>, OptionDataItemObject<OptionDataValue> {
    nodeClick?: 'rootToNode' | 'link';
    link?: string;
    target?: string;
    children?: SunburstSeriesNodeItemOption[];
    collapsed?: boolean;
    cursor?: string;
}
export interface SunburstSeriesLevelOption extends SunburstStateOption, StatesOptionMixin<SunburstStateOption> {
    highlight?: {
        itemStyle?: ItemStyleOption;
        label?: SunburstLabelOption;
    };
}
export interface SunburstSeriesOption extends SeriesOption<SunburstStateOption, ExtraStateOption>, SunburstStateOption, CircleLayoutOptionMixin {
    type?: 'sunburst';
    clockwise?: boolean;
    startAngle?: number;
    minAngle?: number;
    stillShowZeroSum?: boolean;
    nodeClick?: 'rootToNode' | 'link';
    renderLabelForZeroData?: boolean;
    levels?: SunburstSeriesLevelOption[];
    animationType?: 'expansion' | 'scale';
    sort?: 'desc' | 'asc' | ((a: TreeNode, b: TreeNode) => number);
}
interface SunburstSeriesModel {
    getFormattedLabel(dataIndex: number, state?: 'emphasis' | 'normal' | 'highlight' | 'blur' | 'select'): string;
}
declare class SunburstSeriesModel extends SeriesModel<SunburstSeriesOption> {
    static readonly type = "series.sunburst";
    readonly type = "series.sunburst";
    ignoreStyleOnData: boolean;
    private _viewRoot;
    getInitialData(option: SunburstSeriesOption, ecModel: GlobalModel): import("../../data/List").default<import("../../model/Model").default<any>, import("../../data/List").DefaultDataVisual>;
    optionUpdated(): void;
    getDataParams(dataIndex: number): SunburstDataParams;
    static defaultOption: SunburstSeriesOption;
    getViewRoot(): TreeNode;
    resetViewRoot(viewRoot?: TreeNode): void;
}
export default SunburstSeriesModel;
