import { type BoxBounds } from 'ag-charts-core';
import type { AgActiveItemState, AgDrawingMode } from 'ag-charts-types';
import type { DatumIndexType, ErrorBoundSeriesNodeDatum, HighlightState, ISeries, SelectionState, SeriesNodeDatum } from './seriesTypes';
export declare function datumStylerProperties(xValue: any, yValue: any, xKey: string, yKey: string, xDomain: any[], yDomain: any[]): {
    xKey: string;
    yKey: string;
    xValue: any;
    yValue: any;
    first: boolean;
    last: boolean;
    min: boolean;
    max: boolean;
};
export declare function visibleRangeIndices(sortOrder: 1 | -1, length: number, [range0, range1]: [number, number], xRange: (index: number) => [number, number] | undefined): [number, number];
export declare function getDatumRefPoint(series: ISeries<any, any, any>, datum: SeriesNodeDatum<DatumIndexType> & Pick<ErrorBoundSeriesNodeDatum, 'yBar'>, movedBounds: BoxBounds | undefined): {
    canvasX: number;
    canvasY: number;
} | undefined;
/**
 * Counts the number of items that match a condition within a specified range, starting at a given index and expanding
 * outwards until a certain count is reached.
 *
 * @param {number} min - The minimum number in the range.
 * @param {number} max - The maximum number in the range.
 * @param {number} start - The index at which to centre the search.
 * @param {number} countUntil - The maximum number until which to count.
 * @param {function(number): boolean} iteratee - A function that takes an index and returns a boolean to indicate if the value should be counted.
 * @returns {number} The count of items that matched the condition of the iteratee.
 */
export declare function countExpandingSearch(min: number, max: number, start: number, countUntil: number, iteratee: (index: number) => boolean): number;
export declare function getItemStyles<TNodeDatum, TStyle>(getItemStyle: (nodeDatum: TNodeDatum | undefined, isHighlight: boolean, highlightState: HighlightState | undefined, selectionState: SelectionState | undefined) => TStyle): Record<HighlightState, TStyle>;
export declare function getItemStylesPerItemId<TItemId extends string, TNodeDatum, TStyle>(getItemStyle: (nodeDatum: TNodeDatum | undefined, isHighlight: boolean, highlightState?: HighlightState, itemId?: TItemId) => TStyle, ...itemIds: TItemId[]): Record<TItemId, Record<HighlightState, TStyle>>;
export declare function hasDimmedOpacity(style?: {
    opacity?: number;
    fillOpacity?: number;
    strokeOpacity?: number;
}): boolean;
export declare function isOpaqueMarkerFillStyle(style?: {
    fill?: unknown;
    fillOpacity?: number;
    opacity?: number;
}): boolean;
export declare function resolveMarkerDrawingMode(baseDrawingMode: AgDrawingMode, style?: {
    fill?: unknown;
    fillOpacity?: number;
    opacity?: number;
}): AgDrawingMode;
export declare function findNodeDatumInArray<D extends SeriesNodeDatum<DatumIndexType>>(itemIdOrIndex: AgActiveItemState['itemId'], nodeData: D[] | undefined, dataIdKey?: string): D | undefined;
