import type { DynamicContext } from 'ag-charts-core';
import { ChartUpdateType } from 'ag-charts-core';
import { FocusIndicator } from '../../dom/focusIndicator';
import type { ChartRegistry } from '../../module/moduleContext';
import { BBox } from '../../scene/bbox';
import type { TranslatableGroup } from '../../scene/group';
import { BaseManager } from '../../util/baseManager';
import type { TypedEvent } from '../../util/observable';
import type { ChartHighlight } from '../chartHighlight';
import type { ChartType } from '../chartType';
import type { ChartOverlays } from '../overlay/chartOverlays';
import { Tooltip, type TooltipContent } from '../tooltip/tooltip';
import { type PickedNode } from './pickManager';
import { type UnknownSeries } from './series';
import { type DatumIndex, type SeriesNodeDatum } from './seriesTypes';
export interface SeriesAreaChartDependencies {
    hasViewportSupport(): boolean;
    hasPgUpPgDownSupport(): boolean;
    fireEvent<TEvent extends TypedEvent>(event: TEvent): void;
    getUpdateType(): ChartUpdateType;
    getTooltipContent: (series: PickedNode['series'], datumIndex: DatumIndex, removeThisDatum: SeriesNodeDatum, purpose: 'aria-label' | 'tooltip') => TooltipContent[];
    chartType: ChartType;
    seriesRoot: TranslatableGroup;
    ctx: DynamicContext<ChartRegistry>;
    tooltip: Tooltip;
    highlight: ChartHighlight;
    overlays: ChartOverlays;
}
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 _device;
    private setHoverDevice;
    private getHoverDevice;
    private readonly pickManager;
    private readonly focus;
    private cachedTooltipContent;
    constructor(chart: SeriesAreaChartDependencies);
    private initFocus;
    private isState;
    private isIgnoredTouch;
    dataChanged(): void;
    private preSceneRender;
    private updateComplete;
    private update;
    seriesChanged(series: UnknownSeries[]): void;
    private layoutComplete;
    private onAnimationStart;
    private onResize;
    private onZoomChangeComplete;
    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 onPage;
    private onNav;
    private onArrow;
    private onHome;
    private onEnd;
    private onSubmit;
    private checkSeriesNodeClick;
    private handleFocusFromUserInput;
    private refreshFocus;
    private handleFocus;
    private handleSeriesFocus;
    private makeUpdateFocusParamsFromDeltas;
    private handleSeriesFocusDeltas;
    private handleSeriesFocusIndices;
    private pickFocus;
    private pickViewportFocus;
    private updatePickedFocus;
    private maybeAnnouncePickedFocus;
    private announceDataSelectionChange;
    private getDatumAriaText;
    private getSelectedStateAriaText;
    private clearHighlight;
    private clearTooltip;
    private clearAll;
    private clearStaleHighlightTooltip;
    private clearUnpreventable;
    private clearCachedEvents;
    private createHoverScheduler;
    private resetHoverScheduler;
    private hoverScheduler;
    private handleHoverFromState;
    private handleHoverHighlight;
    private handleHoverTooltip;
    private showTooltip;
    private maybeEnterInteractiveTooltip;
    private changeHighlightDatum;
    private onHighlightSelectionUpdate;
    private pickNodes;
    private isTooltipEnabled;
    private getTooltipContent;
    private onLegendHover;
    private onActiveLoadMemento;
    onActiveClear(): void;
    private refreshSetState;
    private onActiveDatum;
    private findPickedNodes;
}
