import type { Scale } from 'ag-charts-core'; import { type Point } from 'ag-charts-core'; import type { AgActiveItemState } from 'ag-charts-types'; import type { BBox } from '../../scene/bbox'; import type { Path } from '../../scene/shape/path'; import type { DataController } from '../data/dataController'; import type { DataModel, DataModelOptions, ProcessedData } from '../data/dataModel'; import { DataSet } from '../data/dataSet'; import type { PickFocusInputs, PickFocusOutputs, SeriesConstructorOpts, SeriesNodeDataContext } from './series'; import { Series } from './series'; import type { SeriesProperties } from './seriesProperties'; import { type SeriesNodeDatum } from './seriesTypes'; export interface DataModelSeriesNodeDatum extends SeriesNodeDatum { itemId?: string; } export interface DataModelSeriesNodeDataContext extends SeriesNodeDataContext { } export type DataModelSeriesConstructorOpts> = SeriesConstructorOpts & { categoryKey: string | undefined; clipFocusBox?: boolean; }; export declare abstract class DataModelSeries, TLabel = TDatum, TContext extends DataModelSeriesNodeDataContext = DataModelSeriesNodeDataContext> extends Series { protected dataModel?: DataModel; protected processedData?: ProcessedData; private readonly categoryKey; private readonly clipFocusBox; protected constructor({ clipFocusBox, categoryKey, ...seriesOpts }: DataModelSeriesConstructorOpts); dataCount(): number; invalidDataCount(): number; missingDataCount(): number; get hasData(): boolean; protected getScaleInformation({ xScale, yScale, }: { xScale?: Scale; yScale?: Scale; }): { isContinuousX: boolean; isContinuousY: boolean; xScaleType: import("ag-charts-core").ScaleType | undefined; yScaleType: import("ag-charts-core").ScaleType | undefined; }; private getModulePropertyDefinitions; protected requestDataModel(dataController: DataController, dataSet: DataSet | undefined, opts: DataModelOptions): Promise<{ dataModel: DataModel; processedData: ProcessedData; }>; protected isProcessedDataAnimatable(): boolean; protected checkProcessedDataAnimatable(): void; protected abstract computeFocusBounds(opts: PickFocusInputs): Path | BBox | undefined; abstract getNodeData(): TDatum[] | undefined; findNodeDatum(itemId: AgActiveItemState['itemId']): TDatum | undefined; pickFocus(opts: PickFocusInputs): PickFocusOutputs | undefined; protected pickNodesExactShape(point: Point): SeriesNodeDatum[]; protected isDatumEnabled(nodeData: TDatum[], datumIndex: number): boolean; private computeFocusDatumIndex; private dataModelPropertyIsKey; protected keysOrValues(xKey: string): T[]; protected sortOrder(xKey: string): -1 | 1 | undefined; protected getCategoryKey(): string | undefined; getCategoryValue(datumIndex: number): any; datumIndexForCategoryValue(categoryValue: any): number | undefined; }