import type { AgSelectionItem, AgSelectionItemIds } from 'ag-charts-community';
import { _ModuleSupport } from 'ag-charts-community';
type ChangeItem = AgSelectionItem<unknown>;
type SelectionChangesWithItems = {
    countDelta: number;
    added: ChangeItem[];
    removed: ChangeItem[];
};
type SelectionChangesDeltaOnly = {
    countDelta: number;
    added?: never;
    removed?: never;
};
type Changes = SelectionChanges;
type Series = NonNullable<ClickedNode['series']>;
type DataSet = _ModuleSupport.DataSet<unknown>;
type State = _ModuleSupport.DataSelectionState;
type ClickedNode = NonNullable<_ModuleSupport.SeriesAreaClickEvent['clickedNode']>;
type DragWidgetEvent = _ModuleSupport.DragWidgetEvent;
export type SelectionChanges = SelectionChangesWithItems | SelectionChangesDeltaOnly;
export declare function toStartAndLength(start: number, end: number): [number, number];
export declare function toBBox(event1: DragWidgetEvent, event2: DragWidgetEvent): _ModuleSupport.BBox;
export declare function hasAddToSelectionModifier(event: {
    sourceEvent: {
        ctrlKey: boolean;
        metaKey: boolean;
    };
}): boolean;
export declare function rollbackChanges(changes: SelectionChangesWithItems, allSeries: Series[]): void;
export declare function getAllDataSets(allSeries: Series[]): Set<DataSet>;
export declare function toggleSelection(changes: Changes, series: Series, data: DataSet, datumIndex: number): void;
export declare function setSelected(changes: Changes, series: Series, data: DataSet, datumIndex: number): void;
export declare function setSelectedRange(changes: Changes, series: Series, data: DataSet, start: number, end: number): void;
export declare function clearAllSelections(changes: Changes, state: State, allSeries: Series[]): void;
export declare function isUnknownIterable(value: unknown): value is Iterable<unknown>;
export declare function isAgSelectionItem(item: unknown): item is AgSelectionItemIds;
export declare function asNumericDatumIndex(datumIndex: _ModuleSupport.DatumIndexType): datumIndex is number;
export {};
