import { AreaLineStyle, ChartModel, ChartStyle, DeepPartial, IAllSeriesStyle, IAxisOptions, IChartContext, IChartStyle, ILegendStyle, InvalidValueType, IPieLabelStyle, IRelationForceOptions, IRuntimeAxis, ITrendLine, RadarShape, RelationChartLayoutEnum, RightYAxisOptions, TitlePositionEnum, WaterfallStackTypeEnum, WordCloudShapeEnum, CategoryType, ChartTypeBits, DataOrientation } from '@univerjs-pro/engine-chart';
import { IChartSourceMultiRangeItem, IChartUpdateConfigCommandParams, IChartUpdateSourceCommandParams, ISheetChartSourceSingleRange, ChartModelService, SheetsChartService } from '@univerjs-pro/sheets-chart';
import { Nullable, Disposable, ICommandService, IUniverInstanceService, LocaleService } from '@univerjs/core';
import { Observable } from 'rxjs';
import { IChartHostProviderService } from './sheets-chart-host-provider.service';
export declare function registryChartConfigState(service: SheetsChartUIService): void;
export interface IChartOptionType {
    label: string;
    value: string;
}
export interface IChartConfigStateMap {
    headers: IChartConfigState<IChartContext['headers']>;
    orient: IChartConfigState<Nullable<DataOrientation>>;
    aggregate: IChartConfigState<boolean>;
    gradientFill: IChartConfigState<Nullable<boolean>>;
    indicator: IChartConfigState<Nullable<ChartStyle['tooltip']>>;
    chartType: IChartConfigState<ChartTypeBits>;
    dataRange: IChartConfigState<Nullable<ISheetChartSourceSingleRange | IChartSourceMultiRangeItem[]>>;
    /** Series & Category */
    categoryIndex: IChartConfigState<Nullable<number>>;
    categoryType: IChartConfigState<Nullable<CategoryType>>;
    categoryList: IChartConfigState<IChartOptionType[]>;
    bubbleCategoryList: IChartConfigState<IChartOptionType[]>;
    seriesValues: IChartConfigState<number[]>;
    trendlineValues: IChartConfigState<ITrendLine[] | undefined>;
    seriesList: IChartConfigState<IChartOptionType[]>;
    seriesResourceList: IChartConfigState<IChartOptionType[]>;
    asCategory: IChartConfigState<boolean>;
    backgroundColor: IChartConfigState<Nullable<string>>;
    borderColor: IChartConfigState<Nullable<string>>;
    fontSize: IChartConfigState<number | undefined, number>;
    titleFontSize: IChartConfigState<number | undefined, number>;
    titles: IChartConfigState<Nullable<DeepPartial<IChartStyle['titles']>>, DeepPartial<IChartStyle['titles']>>;
    allSeriesStyle: IChartConfigState<Nullable<DeepPartial<IAllSeriesStyle>>, IAllSeriesStyle>;
    seriesStyleMap: IChartConfigState<ChartStyle['seriesStyleMap']>;
    legendStyle: IChartConfigState<Nullable<DeepPartial<ILegendStyle>>, Partial<ILegendStyle>>;
    /** Axes */
    xAxisOptions: IChartConfigState<Nullable<DeepPartial<IAxisOptions>>, Partial<IAxisOptions>>;
    yAxisOptions: IChartConfigState<Nullable<DeepPartial<IAxisOptions>>, Partial<IAxisOptions>>;
    rightYAxisOptions: IChartConfigState<Nullable<DeepPartial<RightYAxisOptions>>, Partial<RightYAxisOptions>>;
    runtimeAxes: IChartConfigState<Nullable<IRuntimeAxis[]>>;
    areaLineStyle: IChartConfigState<Nullable<AreaLineStyle>>;
    pieLabelStyle: IChartConfigState<Nullable<DeepPartial<IPieLabelStyle>>>;
    wordCloudShape: IChartConfigState<Nullable<WordCloudShapeEnum>> | undefined;
    wordCloudMask: IChartConfigState<Nullable<string>> | undefined;
    wordCloudRepeat: IChartConfigState<Nullable<boolean>> | undefined;
    funnelGap: IChartConfigState<Nullable<number>>;
    funnelUseAbsValue: IChartConfigState<Nullable<boolean>>;
    padAngleStyle: IChartConfigState<Nullable<boolean>, boolean>;
    isHalfPie: IChartConfigState<Nullable<boolean>, boolean>;
    isRosePie: IChartConfigState<Nullable<boolean>, boolean>;
    showLabelLine: IChartConfigState<Nullable<boolean>, boolean>;
    doughnutHole: IChartConfigState<Nullable<number>, number>;
    pieBorderColor: IChartConfigState<Nullable<string>, string>;
    radarShape: IChartConfigState<Nullable<RadarShape>, RadarShape>;
    radarFill: IChartConfigState<Nullable<boolean>, boolean>;
    invalidValueType: IChartConfigState<Nullable<InvalidValueType>, InvalidValueType>;
    dataPointsOptions: IChartConfigState<Nullable<IChartOptionType[]>>;
    chartThemeColorType: IChartConfigState<Nullable<string>>;
    titlePosition: IChartConfigState<Nullable<TitlePositionEnum>, TitlePositionEnum>;
    bubbleSizeSeriesId: IChartConfigState<Nullable<number>, number | undefined>;
    bubbleXAxis: IChartConfigState<Nullable<number>, number>;
    bubbleYAxis: IChartConfigState<Nullable<number>, number>;
    bubbleLabel: IChartConfigState<Nullable<number>, number>;
    bubbleSeries: IChartConfigState<Nullable<number>, number>;
    relationLayout: IChartConfigState<Nullable<RelationChartLayoutEnum>, RelationChartLayoutEnum>;
    useValueAsSymbolSize: IChartConfigState<Nullable<boolean>, boolean>;
    forceOption: IChartConfigState<Nullable<IRelationForceOptions>, IRelationForceOptions | undefined>;
    rotateLabel: IChartConfigState<Nullable<boolean>, boolean>;
    useEmphasis: IChartConfigState<Nullable<boolean>, boolean>;
    useDateAxis: IChartConfigState<Nullable<boolean>, boolean>;
    waterfallStack: IChartConfigState<Nullable<WaterfallStackTypeEnum>, WaterfallStackTypeEnum>;
    useSubtotal: IChartConfigState<Nullable<boolean>, boolean>;
    paretoStyle: IChartConfigState<Nullable<ChartStyle['pareto']>, ChartStyle['pareto']>;
    paretoDataPointsOptions: IChartConfigState<Nullable<IChartOptionType[]>>;
    visualMapType: IChartConfigState<Nullable<'continuous' | 'piecewise'>, 'continuous' | 'piecewise'>;
    heatmapMax: IChartConfigState<Nullable<number>, number>;
    heatmapMin: IChartConfigState<Nullable<number>, number>;
    valueSuffix: IChartConfigState<Nullable<string>, string>;
    valueScale: IChartConfigState<Nullable<number>, number>;
    digitalFixed: IChartConfigState<Nullable<number>, number>;
}
export type ChartConfigStateKey = keyof IChartConfigStateMap;
export type ChartConfigStateValue = InferChartConfigStateValue<ChartConfigStateKey>;
export type InferChartConfigStateValue<T extends ChartConfigStateKey, M = IChartConfigStateMap[T]> = M extends IChartConfigState<infer V> ? V : never;
export type IChartConfigState<GetValue, SetValue = GetValue> = {
    set?(value: SetValue): void;
    get(): Observable<GetValue> | undefined;
} | Observable<GetValue>;
export declare class SheetsChartUIService extends Disposable {
    private readonly _chartModelService;
    private readonly _sheetsChartService;
    private readonly _commandService;
    private readonly _localeService;
    private readonly _chartHostProviderService;
    private _univerInstanceService;
    private _viewState;
    private _rangeSelectMode;
    constructor(_chartModelService: ChartModelService, _sheetsChartService: SheetsChartService, _commandService: ICommandService, _localeService: LocaleService, _chartHostProviderService: IChartHostProviderService, _univerInstanceService: IUniverInstanceService);
    get activeChartModel(): Nullable<import('@univerjs-pro/sheets-chart').SheetChartModel>;
    get rangeSelectMode(): boolean;
    set rangeSelectMode(on: boolean);
    getDataSource(id: string): import('@univerjs-pro/sheets-chart/models/types.js').ISheetChartDataSource | undefined;
    registerViewState<T extends ChartConfigStateKey = ChartConfigStateKey>(id: T, state: (chartModel: ChartModel) => IChartConfigStateMap[T]): void;
    getViewState<V extends ChartConfigStateValue = ChartConfigStateValue>(id: ChartConfigStateKey): IChartConfigState<V> | undefined;
    executeChartUpdateConfig(params: Omit<IChartUpdateConfigCommandParams, 'unitId'>): void;
    executeChartUpdateSourceConfig(params: Omit<IChartUpdateSourceCommandParams, 'unitId'>): void;
    removeViewState(id: ChartConfigStateKey): void;
    setBorder(id: string, color: string): void;
    t(...args: Parameters<LocaleService['t']>): string;
    dispose(): void;
}
