import { type Point } from 'ag-charts-core';
import type { AnnotationContext, DataPoint } from '../annotationTypes';
export declare function snapPoint(offset: Point, context: AnnotationContext, snapping?: boolean, origin?: DataPoint, angleStep?: number): {
    x: any;
    y: any;
};
export declare function snapToAngle(vector: Point, center: Point, step: number): Point;
export declare function getDragStartState<PointName extends string>(points: Record<PointName, DataPoint>, context: AnnotationContext): Record<PointName, Point>;
/**
 * Translate an collection of vectors by the given translation. Clamp the vectors as a group within the series area.
 *
 * @param vectors The collection of vectors to translate.
 * @param translation The translation to apply to the vectors.
 * @param context Annotation context.
 * @param options.overflowContinuous The tolerance for how many vectors can overflow before the group is clamped.
 * @param options.snap Snap by which vector and at what angle.
 * @param options.translateVectors Which vectors should be considered as currently translating.
 * @param options.invertYVectors Invert the y-axis translation for these vectors.
 * @returns A collection of translated points in domain space.
 */
export declare function translate<VectorName extends string>(vectors: Record<VectorName, Point>, translation: Point, context: AnnotationContext, options?: {
    overflowContinuous: number;
    translateVectors?: VectorName[];
    invertYVectors?: VectorName[];
    snap?: {
        vectors: Record<VectorName, Point>;
        angle: number;
    };
}): Record<VectorName, Point>;
