import { IFontStyle, IColorSplitter, ISingleDisplayField } from '../../../../../constants/chart-style';
import { GaugeEmptyValueMode } from '../../../../../constants/single-style';
import SingleCircularStyleService, { ISingleCircularStyle } from './circular';
import SingleValueChartStyleService, { ISingleValueStyle } from './value';
import SingleGaugeChartStyleService from './gauge';
import SinglePercentChartStyleService from './percent';
import { IChartStyleInitOption } from '../base';
import OneDChartStyleService, { IOneDChartStyle } from '../one-d';
export declare type ISingleChartStyle = ISingleCircularStyle & ISingleValueStyle;
export declare type ISingleStyleService = SingleCircularStyleService & SingleGaugeChartStyleService & SingleValueChartStyleService & SinglePercentChartStyleService;
export interface ISingleBaseStyle extends IOneDChartStyle {
    gaugeEmptyValueMode: GaugeEmptyValueMode;
    gaugeMin: number;
    gaugeMax: number;
    gaugeSplitters: IColorSplitter;
    titleDataFont: IFontStyle;
    colorMetrics: string[];
    colorMetricIsNumberic: boolean;
    displayField: ISingleDisplayField;
}
/**
 * 单值图的通用属性
 */
export default abstract class SingleBaseStyleService<T extends ISingleBaseStyle> extends OneDChartStyleService<T> {
    static getChartInitStyle: typeof getChartInitStyle;
    gaugeEmptyValueMode: GaugeEmptyValueMode;
    gaugeMin: number;
    gaugeMax: number;
    abstract gaugeSplitters: IColorSplitter;
    titleDataFont: IFontStyle;
    colorMetrics: string[];
    colorMetricIsNumberic: boolean;
    displayField: ISingleDisplayField;
    getOptions(): ISingleBaseStyle;
    setGaugeEmptyValueMode(gaugeEmptyValueMode: GaugeEmptyValueMode): void;
    setDisplayField(displayField: ISingleDisplayField): void;
    setGaugeMax(gaugeMax: number | string): void;
    setGaugeMin(gaugeMin: number | string): void;
    setTitleDataFont(titleDataFont: IFontStyle): void;
    setGaugeSplitters(gaugeSplitters: IColorSplitter): void;
    setColorMetrics(colorMetrics: string[]): void;
    setCurrentMetrics(currentMetrics: string[]): void;
    setColorMetricIsNumberic(colorMetricIsNumberic: boolean): void;
    calcGaugeSplitters(gaugeSplitters: IColorSplitter, min: number, max: number): IColorSplitter;
    getGaugeBoundWithColorSplitter(gaugeSplitters: IColorSplitter): {
        min: any;
        max: any;
    };
    getGaugeMinWithOption(option: T, gaugeSplitters: IColorSplitter): any;
    getGaugeMaxWithOption(option: T, gaugeSplitters: IColorSplitter): any;
    constructor(option: T);
}
export declare function getChartInitStyle(option: IChartStyleInitOption, initFirst?: boolean): {
    fields: import("@qn-pandora/app-sdk").IChartField[];
    buckets: string[];
    metrics: string[];
    currentBuckets: string[];
    currentMetrics: string[];
};
