import type { AnyStructure } from '../structure'; import type { BondingStrategy } from '../structure/bonding'; import type { Pbc } from '../structure/pbc'; export declare const MAX_BOND_ANGLE = 180; export declare const BOND_ANGLE_DEFAULT_BIN_WIDTH = 2; export declare const TOTAL_TRIPLET_LABEL = "All angles"; export interface BondAngleOptions { strategy?: BondingStrategy; bin_width?: number; n_bins?: number; split_by_triplet?: boolean; center_elements?: readonly string[]; neighbor_elements?: readonly string[]; pbc?: Pbc; } export interface BondAngleTriplet { center_idx: number; neighbor_idxs: [number, number]; triplet: string; angle: number; } interface BondAngleSeries { triplet: string; counts: number[]; n_angles: number; } export interface BondAngleData { bin_centers: number[]; bin_width: number; n_bins: number; n_angles: number; total: BondAngleSeries; by_triplet: BondAngleSeries[]; } export declare function resolve_angle_bins({ bin_width, n_bins, }: Pick): { n_bins: number; bin_width: number; }; export declare const angle_bin_centers: (n_bins: number, bin_width: number) => number[]; export declare const angle_bin_index: (angle: number, n_bins: number, bin_width: number) => number; export declare function calc_bond_angles(structure: AnyStructure, options?: BondAngleOptions): BondAngleTriplet[]; export declare function bin_bond_angles(triplets: readonly BondAngleTriplet[], options?: Pick): BondAngleData; export declare const calc_bond_angle_distribution: (structure: AnyStructure, options?: BondAngleOptions) => BondAngleData; export {};