import type { Bounds4, BoxBounds, Point } from 'ag-charts-core';
import type { PointProperties } from '../annotationProperties';
import type { AnnotationContext } from '../annotationTypes';
import { FibonacciScene } from '../scenes/fibonacciScene';
import { DivariantHandle } from '../scenes/handle';
import type { StartEndHandle } from '../scenes/startEndScene';
import type { FibonacciRetracementTrendBasedProperties } from './fibonacciRetracementTrendBasedProperties';
type ActiveHandle = StartEndHandle | 'endRetracement';
export declare class FibonacciRetracementTrendBasedScene extends FibonacciScene<FibonacciRetracementTrendBasedProperties> {
    static is(value: unknown): value is FibonacciRetracementTrendBasedScene;
    type: string;
    activeHandle?: ActiveHandle;
    private readonly endRetracementLine;
    protected readonly start: DivariantHandle;
    protected readonly end: DivariantHandle;
    protected readonly endRetracement: DivariantHandle;
    protected readonly ignoreYBounds?: boolean;
    protected dragState?: {
        offset: Point;
        start: Point;
        end: Point;
        endRetracement: Point;
    };
    constructor();
    update(datum: FibonacciRetracementTrendBasedProperties, context: AnnotationContext): void;
    containsPoint(x: number, y: number): boolean;
    getNodeAtCoords(x: number, y: number): string | undefined;
    dragStart(datum: FibonacciRetracementTrendBasedProperties, target: Point, context: AnnotationContext): void;
    stopDragging(): void;
    protected dragAll(datum: FibonacciRetracementTrendBasedProperties, target: Point, context: AnnotationContext): void;
    dragHandle(datum: FibonacciRetracementTrendBasedProperties, target: Point, context: AnnotationContext, snapping: boolean): void;
    snapToAngle(datum: FibonacciRetracementTrendBasedProperties, coords: Point, context: AnnotationContext): Pick<PointProperties, 'x' | 'y'> | undefined;
    translatePoints({ datum, start, end, endRetracement, translation, context, }: {
        datum: FibonacciRetracementTrendBasedProperties;
        start: Point;
        end: Point;
        endRetracement: Point;
        translation: Point;
        context: AnnotationContext;
    }): void;
    translate(datum: FibonacciRetracementTrendBasedProperties, translation: Point, context: AnnotationContext): void;
    copy(datum: FibonacciRetracementTrendBasedProperties, copiedDatum: FibonacciRetracementTrendBasedProperties, context: AnnotationContext): FibonacciRetracementTrendBasedProperties | undefined;
    private getCoords;
    toggleHandles(show: boolean | Partial<Record<ActiveHandle, boolean>>): void;
    toggleActive(active: boolean): void;
    protected updateHandles(datum: FibonacciRetracementTrendBasedProperties, coords1: Bounds4, coords2?: Bounds4, bbox?: BoxBounds): void;
    protected getHandleCoords(_datum: FibonacciRetracementTrendBasedProperties, coords: Bounds4, handle: ActiveHandle, _bbox?: BoxBounds): Point;
}
export {};
