import type { Matrix3x3, Vec3 } from '../math'; import type { Crystal } from '../structure'; export declare const SLAB_POSITION_TOLERANCE = 0.01; export declare const SLAB_LAYER_TOLERANCE = 0.1; export declare const SLAB_DEFAULT_THICKNESS = 10; export declare const SLAB_DEFAULT_VACUUM = 10; export declare const MAX_SLAB_SITES = 50000; export type OrientedBulk = { crystal: Crystal; transform: Matrix3x3; miller_indices: Vec3; d_hkl: number; normal: Vec3; in_plane_index: number; }; export type SlabLayer = { site_idxs: number[]; height: number; frac_c_start: number; gap_below: number; formula: string; }; export type SlabTermination = { layer_idx: number; formula: string; gap: number; equivalent_layer_idxs: number[]; }; export type SlabOptions = { min_slab_thickness?: number; min_vacuum_thickness?: number; termination_idx?: number; center_slab?: boolean; reorient_lattice?: boolean; primitive_in_plane?: boolean; layer_tolerance?: number; }; export type SlabInfo = { miller_indices: Vec3; transform: Matrix3x3; d_hkl: number; n_layers: number; n_repeats: number; layer_spacings: number[]; min_layer_gap: number; slab_thickness: number; vacuum_thickness: number; surface_area: number; normal: Vec3; termination: SlabTermination; terminations: SlabTermination[]; }; export type Slab = Crystal & { slab_info: SlabInfo; };