import type { Vec2, Vec3 } from '../../math'; import type { LineStyle, Markers, PointStyle } from '../core/types'; export declare const TRIANGLE_HEIGHT: number; export type TernaryTriple = readonly [number, number, number]; export interface TernarySeries> { id?: string | number; points: readonly TernaryTriple[]; label?: string; color?: string; markers?: Markers; point_style?: PointStyle | readonly PointStyle[]; line_style?: LineStyle; color_values?: readonly (number | null)[]; metadata?: Metadata | readonly Metadata[]; visible?: boolean; } export interface TernaryPointProps> { series_idx: number; point_idx: number; series_id: string | number; series_label: string; amounts: TernaryTriple; fractions: Vec3; color: string; color_value: number | null; metadata: Metadata | undefined; } export declare function ternary_fractions(triple: TernaryTriple, label?: string): Vec3; export declare const ternary_to_xy: ([frac_a, frac_b, frac_c]: TernaryTriple) => Vec2; export declare const xy_to_ternary: ([x_pos, y_pos]: Vec2) => Vec3; export declare const inside_triangle: (fractions: Vec3, tolerance?: number) => boolean; export interface TernaryGridLine { component: 0 | 1 | 2; value: number; from: Vec2; to: Vec2; outward: Vec2; } export declare function ternary_grid_lines(step: number): TernaryGridLine[]; export interface TernaryLayout { scale: number; to_px: (xy: readonly [number, number]) => Vec2; from_px: (px: Vec2) => Vec2; } export declare function ternary_layout(width: number, height: number): TernaryLayout;