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: 6; 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 PHASE_COLOR_HEX: { readonly liquid: "#87cefc"; readonly alpha: "#90ee90"; readonly beta: "#ffb6c1"; readonly gamma: "#ffdab9"; readonly delta: "#dda0dd"; readonly epsilon: "#f0e68c"; readonly zeta: "#fa8072"; readonly eta: "#e6e6fa"; readonly theta: "#f5deb3"; readonly iota: "#20b2aa"; readonly kappa: "#deb887"; readonly lambda: "#bc8f8f"; readonly two_phase: "#c8c8c8"; readonly default: "#b4b4b4"; readonly tie_line: "#ff6b6b"; }; export type PhaseColorKey = keyof typeof PHASE_COLOR_HEX; export declare const PHASE_COLOR_RGB: Record; export declare const PHASE_COLORS: Record; export declare function get_phase_color_key(name: string): PhaseColorKey; export declare function get_phase_color(name: string, format?: `rgba` | `rgb`): string; export interface GradientStop { offset: number; color: string; } export declare function get_multi_phase_gradient(name: string): GradientStop[] | null; export declare function 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 format_hover_info_text(info: PhaseHoverInfo, temp_unit?: TempUnit, comp_unit?: CompUnit, component_a?: string, component_b?: string, data_temp_unit?: TempUnit, lever_rule_mode?: LeverRuleMode): string; export declare function get_phase_stability_range(region: PhaseRegion): { t_min: number; t_max: number; } | null; export declare function extract_tdb_reference(comments: string[]): string | null; export declare function summarize_models(phases: { sublattice_count: number; sublattice_sites: number[]; }[]): string; export interface FormulaToken { text?: string; sub?: string; sup?: string; } export declare function is_compound(name: string): boolean; export declare function tokenize_formula(formula: string): FormulaToken[]; export declare function format_formula_svg(formula: string, use_subscripts?: boolean): string; export declare const format_label_svg: (label: string, use_subscripts?: boolean) => string; export declare const format_label_html: (label: string, use_subscripts?: boolean) => string; export declare function format_formula_html(formula: string, use_subscripts?: boolean): string; export declare function compute_x_domain(x_range: [number | null, number | null] | undefined, data: PhaseDiagramData | null): Vec2;