import { vec } from "mafs";
import { type I18nContextType } from "../../../components/i18n-context";
import type { Coord } from "../../../interactive2/types";
import type { Dispatch, InteractiveGraphElementSuite, InteractiveGraphProps, PolygonGraphState } from "../types";
import type { Interval } from "mafs";
export declare function renderPolygonGraph(state: PolygonGraphState, dispatch: Dispatch, i18n: I18nContextType, markings: InteractiveGraphProps["markings"]): InteractiveGraphElementSuite;
export declare const hasFocusVisible: (element: Element | null | undefined) => boolean;
export declare function getSideSnapConstraint(points: ReadonlyArray<Coord>, index: number, range: [Interval, Interval]): {
    up: vec.Vector2;
    down: vec.Vector2;
    left: vec.Vector2;
    right: vec.Vector2;
};
export declare function getAngleSnapConstraint(points: ReadonlyArray<Coord>, index: number, range: [Interval, Interval]): {
    up: vec.Vector2;
    down: vec.Vector2;
    left: vec.Vector2;
    right: vec.Vector2;
};
