import type { CompositionType } from '../composition'; import type { ElementSymbol } from '../element'; import type { FileLoadData } from '../io/types'; import type { Matrix3x3, Vec3 } from '../math'; import type { CameraProjection } from '../settings'; import type { Pbc } from './pbc'; export { default as Arrow } from './Arrow.svelte'; export * from './atom-properties'; export { default as AtomLegend } from './AtomLegend.svelte'; export * from './bonding'; export { default as CanvasTooltip } from './CanvasTooltip.svelte'; export { default as Cylinder } from './Cylinder.svelte'; export { default as Lattice } from './Lattice.svelte'; export * from './camera-fit'; export * from './density'; export * from './measure'; export * from './material'; export { StructureSession, type StructureSessionInputs } from './session.svelte'; export * from './pbc'; export * from './polyhedra'; export * from './export'; export * from './site'; export { default as Structure } from './Structure.svelte'; export { default as StructureCarousel } from './StructureCarousel.svelte'; export type StructureCarouselItem = { id: string; label: string; subtitle?: string; structure: AnyStructure; }; export { default as StructureControls } from './StructureControls.svelte'; export { default as StructureEditToolbar } from './StructureEditToolbar.svelte'; export { default as StructureExportPane } from './StructureExportPane.svelte'; export { default as StructureInfoPane } from './StructureInfoPane.svelte'; export { default as StructureScene } from './StructureScene.svelte'; export { default as StructureViewport } from './StructureViewport.svelte'; export { default as TrajectoryLines } from './TrajectoryLines.svelte'; export * from './trajectory-lines'; export * from './supercell'; export * from './validation'; export type MeasureMode = `distance` | `angle` | `dihedral` | `edit-bonds` | `edit-atoms`; export type BondEditMode = `add` | `delete`; export type StructureDisplayMode = `structure` | `slice`; export type StructurePane = `controls` | `info` | `export`; export type StructureView = { label?: string; projection?: CameraProjection; direction?: Vec3; }; export declare const DEFAULT_STRUCTURE_VIEWS: StructureView[]; export type Species = { element: ElementSymbol; occu: number; oxidation_state: number; }; export type Site = { species: Species[]; abc: Vec3; xyz: Vec3; label: string; properties: Record; }; export type LatticeParams = Record<`a` | `b` | `c` | `alpha` | `beta` | `gamma`, number>; export type LatticeType = { matrix: Matrix3x3; pbc: Pbc; volume: number; } & LatticeParams; export type Molecule = { sites: Site[]; charge?: number; id?: string; properties?: StructureProperties; }; export type Crystal = Molecule & { lattice: LatticeType; }; export type AnyStructure = Crystal | Molecule; export type BondOrder = 1 | 1.5 | 2 | 3 | `aromatic`; export type StructureBond = { site_idx_1: number; site_idx_2: number; order: BondOrder; cell_shift?: Vec3; }; type StructureProperties = Record & { bonds?: StructureBond[]; }; export type BondPair = { pos_1: Vec3; pos_2: Vec3; site_idx_1: number; site_idx_2: number; bond_length: number; bond_order?: BondOrder; cell_shift?: Vec3; }; export type { PerceivedBond, PerceptionOptions } from './bond-order-perception'; export { compose_perceived_bonds, perceive_bond_orders, } from './bond-order-perception'; export declare const atomic_radii: CompositionType; export declare function get_center_of_mass(structure: AnyStructure): Vec3; export declare const is_vector_key: (key: string) => boolean; export declare const RESET_VIEW_TITLE = "Reset view (r, or double-click)"; export declare const VECTOR_PALETTE: readonly ["#e74c3c", "#3498db", "#2ecc71", "#f39c12", "#9b59b6", "#1abc9c"]; export declare const vector_display_defaults: (key: string) => { scale: number; shaft_radius: number; arrow_head_radius: number; arrow_head_length: number; } | { scale: null; shaft_radius: number; arrow_head_radius: number; arrow_head_length: number; }; export declare const default_vector_configs: (keys: string[]) => { [k: string]: { visible: boolean; color: "#e74c3c" | "#3498db" | "#2ecc71" | "#f39c12" | "#9b59b6" | "#1abc9c" | null; scale: number | null; }; }; export declare function get_all_site_vectors(site: Site, ordered?: boolean): { vec: Vec3; key: string; }[]; export declare function get_structure_vector_keys(structure: AnyStructure): string[]; export interface StructureHandlerData extends FileLoadData { structure?: AnyStructure; file_size?: number; total_atoms?: number; error_msg?: string; fullscreen?: boolean; camera_position?: Vec3; camera_target?: Vec3; camera_zoom?: number; camera_has_moved?: boolean; }