import type { ElementSymbol } from '../element'; import type { Vec3 } from '../math'; import type { AnyStructure, Site } from './'; export declare const DEFAULT_FIT_PADDING: number; export declare const FIT_ZOOM_REF_PX = 50; export type StructureFitOpts = { atom_radius_scale?: number; same_size_atoms?: boolean; element_radius_overrides?: Partial>; site_radius_overrides?: ReadonlyMap; }; type StructureFitFrame = { center: Vec3; extent: number; }; export declare const camera_needs_fit: (position: Vec3, previous_view: string | undefined, camera_view: string) => boolean; export declare const site_base_radius: (site: Site, site_idx: number, opts: Omit) => number; export declare function structure_fit_frame(structure: AnyStructure | null | undefined, opts?: StructureFitOpts): StructureFitFrame; export declare const ortho_zoom_for_extent: (fit_extent: number, width: number, height: number, initial_zoom: number) => number; export declare const perspective_distance_for_extent: (fit_extent: number, width: number, height: number, vertical_fov_degrees: number) => number; export declare const camera_position_for_target: (target: Vec3, distance: number, view_dir?: Vec3 | null) => Vec3; export {};