import { ChartUpdateType } from 'ag-charts-core';
import { FocusIndicator } from '../../dom/focusIndicator';
import { BBox } from '../../scene/bbox';
import type { TranslatableGroup } from '../../scene/group';
import { BaseManager } from '../../util/baseManager';
import type { TypedEvent } from '../../util/observable';
import type { ChartContext } from '../chartContext';
import type { ChartHighlight } from '../chartHighlight';
import type { ChartMode } from '../chartMode';
import type { ChartType } from '../factory/expectedModules';
import type { ChartOverlays } from '../overlay/chartOverlays';
import { Tooltip, type TooltipContent } from '../tooltip/tooltip';
import { type UnknownSeries } from './series';
import type { DatumIndexType } from './seriesTypes';
export interface SeriesAreaChartDependencies {
    fireEvent<TEvent extends TypedEvent>(event: TEvent): void;
    getUpdateType(): ChartUpdateType;
    getTooltipContent: <DatumIndex extends DatumIndexType>(series: UnknownSeries, datumIndex: DatumIndex, removeThisDatum: unknown, purpose: 'aria-label' | 'tooltip') => TooltipContent[];
    chartType: ChartType;
    seriesRoot: TranslatableGroup;
    ctx: ChartContext;
    tooltip: Tooltip;
    highlight: ChartHighlight;
    overlays: ChartOverlays;
    mode: ChartMode;
}
export declare class SeriesAreaManager extends BaseManager {
    private readonly chart;
    static readonly className = "SeriesAreaManager";
    readonly id: string;
    private series;
    private seriesRect?;
    private hoverRect?;
    readonly focusIndicator?: FocusIndicator;
    private readonly swapChain;
    private announceMode;
    get bbox(): BBox;
    private readonly highlight;
    private readonly tooltip;
    private readonly activeState;
    /**
     * A11y Requirements for Tooltip/Highlight (see AG-13051 for details):
     *
     *   -   When the series-area is blurred, allow the mouse to update the tooltip/highlight.
     *
     *   -   When the series-area receives a `focus` event, use `:focus-visible` to guess the input device.
     *       (this is decided by the browser).
     *
     *   -   For keyboard users, `focus` and `keydown` events always updates & shows the tooltip/highlight on
     *       the currently (or newly) focused datum.
     *
     *   -   For keyboard users, `mousemove` events update the tooltip/highlight iff `pickNode` finds a match
     *       for the mouse event offsets.
     */
    private hoverDevice;
    private readonly pickManager;
    private readonly focus;
    private cachedTooltipContent;
    constructor(chart: SeriesAreaChartDependencies);
    private isState;
    private isIgnoredTouch;
    dataChanged(): void;
    private preSceneRender;
    private updateComplete;
    private update;
    seriesChanged(series: UnknownSeries[]): void;
    private layoutComplete;
    private onAnimationStart;
    private onContextMenu;
    private onLeave;
    private onWheel;
    private onDragMove;
    private onHover;
    private onHoverLikeEvent;
    private onClick;
    private emitSeriesAreaHoverEvent;
    private emitSeriesAreaClickEvent;
    private toCanvasCoordinates;
    private onFocus;
    private onBlur;
    private onKeyDown;
    private onArrow;
    private onSubmit;
    private checkSeriesNodeClick;
    private handleFocus;
    private handleSeriesFocus;
    private handleSoloSeriesFocus;
    private pickFocus;
    private updatePickedFocus;
    private maybeAnnouncePickedFocus;
    private getDatumAriaText;
    private clearHighlight;
    private clearTooltip;
    private clearAll;
    private clearCachedEvents;
    private readonly hoverScheduler;
    private handleHoverFromState;
    private handleHoverHighlight;
    private handleHoverTooltip;
    private showTooltip;
    private maybeEnterInteractiveTooltip;
    private changeHighlightDatum;
    private pickNodes;
    private isTooltipEnabled;
    private getTooltipContent;
    private onActiveLoadMemento;
    private onActiveUpdate;
    onActiveClear(): void;
    private refreshSetState;
    private onActiveDatum;
    private findPickedNodes;
}
