import type { AgSelectionItemIds } from 'ag-charts-community';
import { _ModuleSupport } from 'ag-charts-community';
import type { DataSelectionChangeMap } from './dataSelectionChangeMap';
import type { DataSetSelection } from './dataSetSelection';
type SelectionChangesWithItems = {
    countDelta: number;
    items: DataSelectionChangeMap;
};
type SelectionChangesDeltaOnly = {
    countDelta: number;
    items?: never;
};
type Changes = SelectionChanges;
type Series = NonNullable<ClickedNode['series']>;
type DataSet = _ModuleSupport.DataSet<unknown>;
type Group = _ModuleSupport.Group<unknown>;
type ClickedNode = NonNullable<_ModuleSupport.SeriesAreaClickEvent['clickedNode']>;
type DragWidgetEvent = _ModuleSupport.DragWidgetEvent;
type Service = {
    clearSelection(): void;
    enableSelection(seriesId: string, dataSet: DataSet): DataSetSelection;
    iterateDataSetSelections(): Iterable<DataSetSelectionsIterator>;
};
export type DataSetSelectionsIterator = {
    seriesId: string;
    dataSet: DataSet;
    selection: DataSetSelection;
};
export type SelectionChanges = SelectionChangesWithItems | SelectionChangesDeltaOnly;
export declare function toStartAndLength(start: number, end: number): [number, number];
export declare function toCanvasBBox(seriesRoot: Group, event1: DragWidgetEvent, event2: DragWidgetEvent): _ModuleSupport.BBox;
export declare function hasAddToSelectionModifier(event: {
    sourceEvent: {
        ctrlKey: boolean;
        metaKey: boolean;
    };
}): boolean;
export declare function rollbackChanges(changes: SelectionChangesWithItems, service: Service): void;
export declare function toggleSelection(changes: Changes, series: Series, srv: Service, datumIndex: number): void;
export declare function setSelected(changes: Changes, series: Series, srv: Service, datumIndex: number): void;
export declare function setSelectedRange(changes: Changes, series: Series, srv: Service, start: number, end: number): void;
export declare function clearAllSelections(changes: Changes, srv: Service): void;
export declare function isUnknownIterable(value: unknown): value is Iterable<unknown>;
export declare function isAgSelectionItem(item: unknown): item is AgSelectionItemIds;
export {};
