import { type Vec2 } from '../math'; import type { Sides } from '../plot/core/layout'; import type { CompUnit, LeverRuleMode, LeverRuleResult, PhaseDiagramConfig, PhaseDiagramData, PhaseHoverInfo, PhaseRegion, TempUnit, VerticalLeverRuleResult } from './types'; export declare function convert_temp(value: number, from: TempUnit, to: TempUnit): number; export declare const PHASE_DIAGRAM_DEFAULTS: Readonly<{ show_boundaries: true; show_labels: true; show_special_points: true; show_grid: true; show_component_labels: true; font_size: 12; special_point_radius: 5; x_ticks: 5; y_ticks: 5; tie_line: Readonly<{ stroke_width: 1.5; endpoint_radius: 4; cursor_radius: 5; }>; colors: Readonly<{ background: "transparent"; grid: "rgba(128, 128, 128, 0.3)"; axis: "var(--text-color, #333)"; text: "var(--text-color, #333)"; boundary: "#333"; special_point: "#d32f2f"; }>; margin: Readonly>; png_dpi: 150; }>; export declare const merge_phase_diagram_config: (config: Partial) => { margin: { t: number; b: number; l: number; r: number; }; font_size: number; special_point_radius: number; tie_line: { stroke_width: number; endpoint_radius: number; cursor_radius: number; }; colors: { background: string; grid: string; axis: string; text: string; boundary: string; special_point: string; }; }; export declare const TIE_LINE_COLOR = "#ff6b6b"; export declare function get_phase_color(name: string, format?: `rgba` | `hex`): string; export declare function get_multi_phase_gradient(name: string): { offset: number; color: string; }[] | null; export declare const find_phase_at_point: (composition: number, temperature: number, data: PhaseDiagramData) => PhaseRegion | null; export declare const generate_region_path: (vertices: Vec2[]) => string; export declare const generate_boundary_path: (points: Vec2[]) => string; export declare function compute_label_properties(label: string, bounds: { width: number; height: number; }, font_size: number): { rotation: number; lines: string[]; scale: number; }; export declare const transform_vertices: (vertices: Vec2[], x_scale: (val: number) => number, y_scale: (val: number) => number) => Vec2[]; export declare function format_composition(value: number, unit?: CompUnit, include_unit?: boolean): string; export declare const format_temperature: (value: number, unit?: TempUnit) => string; export declare function calculate_lever_rule(region: PhaseRegion, composition: number, temperature: number): LeverRuleResult | null; export declare function calculate_vertical_lever_rule(region: PhaseRegion, composition: number, temperature: number): VerticalLeverRuleResult | null; export declare function lever_rule_rows(info: PhaseHoverInfo, mode: LeverRuleMode, comp_unit: CompUnit, temp_unit: TempUnit, data_temp_unit?: TempUnit): { vertical: boolean; rows: [string, number, string][]; } | null; export interface HoverTextOptions { temp_unit?: TempUnit; comp_unit?: CompUnit; component_a?: string; component_b?: string; data_temp_unit?: TempUnit; lever_rule_mode?: LeverRuleMode; } export declare function format_hover_info_text(info: PhaseHoverInfo, options?: HoverTextOptions): string; export declare function get_phase_stability_range(region: PhaseRegion): { t_min: number; t_max: number; } | null; export declare function compute_x_domain(x_range: [number | null, number | null] | undefined, data: PhaseDiagramData | null): Vec2;