import type { CompositionType } from '../composition'; import type { ElementSymbol } from '../element'; import type { Point2D, Point3D, Vec2 } from '../math'; import type { AnyStructure } from '../structure'; export interface StructurePopupStats { id?: string; formula?: string; e_above_hull?: number; e_form?: number; } export interface StructurePopupContext { structure: AnyStructure; stats?: StructurePopupStats; formula_html: string; } export interface PhaseData { composition: CompositionType; energy: number; entry_id?: string; e_above_hull?: number; is_stable?: boolean; exclude_from_hull?: boolean; energy_per_atom?: number; e_form_per_atom?: number; reduced_formula?: string; name?: string; temperatures?: number[]; free_energies?: number[]; volume_per_atom?: number; '@module'?: string; '@class'?: string; correction?: number; energy_adjustments?: Record[]; parameters?: Record; data?: Record; structure?: Record; attributes?: Record; magnetic_ordering?: MagneticOrdering | (string & {}); } export interface EntryCategoryConfig { label: string; property: string | string[]; markers: Record; labels?: Record; aliases?: Record; } export type MagneticOrdering = `FM` | `FiM` | `AFM` | `NM`; export declare const MAGNETIC_ORDERING_CATEGORY: EntryCategoryConfig; export interface ProcessedPhaseData { entries: PhaseData[]; elements: ElementSymbol[]; } export type MarkerSymbol = // Marker symbol types for convex hull entries `circle` | `star` | `triangle` | `cross` | `diamond` | `square` | `wye`; export declare const HULL_FACE_COLOR_MODES: readonly ["uniform", "formation_energy", "dominant_element", "facet_index"]; export type HullFaceColorMode = (typeof HULL_FACE_COLOR_MODES)[number]; export interface ConvexHullEntry extends PhaseData, Point3D { is_element: boolean; size?: number; marker?: MarkerSymbol; } export interface ConvexHullConfig { show_labels?: boolean; show_hull?: boolean; font_size?: number; colors?: { stable?: string; unstable?: string; }; } export declare const DEFAULT_HULL_COLORS: { stable: string; unstable: string; }; export interface ConvexHullControlsType { title?: string; show_counts?: boolean; show_label_controls?: boolean; } export interface HoverData3D { entry: T; position: Point2D; } export interface PhaseStats { total: number; unary: number; binary: number; ternary: number; quaternary: number; quinary_plus: number; stable: number; unstable: number; energy_range: { min: number; max: number; avg: number; }; hull_distance: { max: number; avg: number; }; elements: number; chemical_system: string; max_arity: number; } export type PhaseArityField = Extract; export interface HighlightStyle { effect?: `pulse` | `glow` | `size` | `color` | `both`; color?: string; size_multiplier?: number; opacity?: number; pulse_speed?: number; } export declare const DEFAULT_GAS_TEMP = 300; export declare const GAS_SPECIES: readonly ["O2", "N2", "H2", "CO", "CO2", "H2O", "F2"]; export type GasSpecies = (typeof GAS_SPECIES)[number]; export declare const DEFAULT_GAS_PRESSURES: Readonly>; export interface GasThermodynamicsProvider { get_standard_chemical_potential(gas: GasSpecies, temperature: number): number; get_supported_gases(): GasSpecies[]; get_temperature_range(): Vec2; } export interface GasThermodynamicsConfig { enabled_gases?: GasSpecies[]; pressures?: Partial>; provider?: GasThermodynamicsProvider; element_to_gas?: Partial>; } export interface GasAnalysis { has_gas_dependent_elements: boolean; gas_elements: ElementSymbol[]; relevant_gases: GasSpecies[]; }