import { type ChartModuleDefinition, type DeepPartial } from 'ag-charts-core';
import { type AgChartOptions, type AgChartThemeParams } from 'ag-charts-types';
import { PRESETS } from '../api/preset/presets';
import { type ChartTheme } from '../chart/themes/chartTheme';
import { type CloneOptions } from '../util/json';
export interface ChartSpecialOverrides {
    document: Document;
    window: Window;
    sceneMode?: 'simple';
    styleContainer?: HTMLElement;
}
export interface ChartInternalOptionMetadata {
    presetType?: keyof typeof PRESETS;
    pool?: boolean;
    domMode?: 'normal' | 'minimal';
}
export declare class ChartOptions<T extends AgChartOptions = AgChartOptions> {
    static readonly OPTIONS_CLONE_OPTS: CloneOptions;
    static readonly JSON_DIFF_OPTS: Set<any>;
    private static readonly perfDebug;
    private static readonly FAST_PATH_OPTIONS;
    private static isFastPathDelta;
    activeTheme: ChartTheme;
    processedOptions: T;
    defaultAxes: T;
    userOptions: Partial<T>;
    processedOverrides: Partial<T>;
    specialOverrides: ChartSpecialOverrides;
    optionMetadata: ChartInternalOptionMetadata;
    themeParameters: AgChartThemeParams;
    annotationThemes: any;
    fastDelta?: DeepPartial<T>;
    chartDef?: ChartModuleDefinition<any>;
    private static readonly debug;
    constructor(currentUserOptions: T | ChartOptions<T> | undefined, newUserOptions: T, processedOverrides: Partial<T>, specialOverrides: Partial<ChartSpecialOverrides>, metadata: ChartInternalOptionMetadata, deltaOptions?: DeepPartial<T> | null, stripSymbols?: boolean);
    private fastSetup;
    private fastSeriesSetup;
    private slowSetup;
    private validatePluginOptions;
    private validateSeriesOptions;
    private validateAxesOptions;
    diffOptions(other?: ChartOptions): Partial<T>;
    private getSeriesThemeConfig;
    private getDefaultAxes;
    private optionsType;
    private splitAnnotationsOptions;
    private processAxesOptions;
    private processSeriesOptions;
    private processMiniChartSeriesOptions;
    private getThemeParameters;
    private resolveThemeOperations;
    private getSeriesGroupingOptions;
    private setSeriesGroupingOptions;
    private getSeriesGroupId;
    private getSeriesGrouping;
    private getTooltipPositionDefaults;
    private getTooltipRangeDefaults;
    private soloSeriesIntegrity;
    private static enableConfiguredJsonOptions;
    private static cleanupEnabledFromThemeJsonOptions;
    private enableConfiguredOptions;
    private static removeDisabledOptionJson;
    private removeDisabledOptions;
    private static removeLeftoverSymbolsJson;
    private removeLeftoverSymbols;
    private specialOverridesDefaults;
}
