import { AreaLineStyle, ChartModel, ChartStyle, DeepPartial, IAllSeriesStyle, IAxisOptions, IChartContext, IChartStyle, ILegendStyle, InvalidValueType, IPieLabelStyle, IRuntimeAxis, RadarShape, RightYAxisOptions, TitlePositionEnum, CategoryType, ChartThemeService, ChartTypeBits, DataOrientation } from '@univerjs-pro/engine-chart';
import { Nullable, Disposable, ICommandService, Injector, IUniverInstanceService, LocaleService } from '@univerjs/core';
import { Observable } from 'rxjs';
import { EmbeddedChartModelService } from './embedded-chart-model.service';
export declare function registryChartConfigState(service: EmbeddedChartUIService): 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>;
    /** Series & Category */
    categoryIndex: IChartConfigState<Nullable<number>>;
    categoryType: IChartConfigState<Nullable<CategoryType>>;
    categoryList: IChartConfigState<IChartOptionType[]>;
    seriesValues: IChartConfigState<number[]>;
    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>>>;
    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>;
}
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 EmbeddedChartUIService extends Disposable {
    private readonly _chartModelService;
    private readonly _commandService;
    private readonly _localeService;
    private _univerInstanceService;
    private _chartThemeService;
    protected readonly _injector: Injector;
    private _viewState;
    constructor(_chartModelService: EmbeddedChartModelService, _commandService: ICommandService, _localeService: LocaleService, _univerInstanceService: IUniverInstanceService, _chartThemeService: ChartThemeService, _injector: Injector);
    setActiveChartModelId(unitId: string, chartId: string): Promise<void>;
    get activeChartModel(): Nullable<ChartModel>;
    getRuntimeService(): {
        chartThemeService: ChartThemeService;
        localeService: LocaleService;
    };
    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: any): Promise<void>;
    removeViewState(id: ChartConfigStateKey): void;
    t(...args: Parameters<LocaleService['t']>): string;
    dispose(): void;
}
export declare const DefaultLimitedTypes: string[];
export declare const DefaultAllTypes: string[];
export declare function getAllowedChartTypes(_injector: Injector): string[];
