/** * Copyright (c) 2018-2026 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose */ import { Structure } from '../mol-model/structure.js'; import { VisualQuality } from '../mol-geo/geometry/base.js'; import { Location } from '../mol-model/location.js'; export interface VisualUpdateState { updateTransform: boolean; updateMatrix: boolean; updateColor: boolean; updateSize: boolean; updateLocation: boolean; createGeometry: boolean; createNew: boolean; /** holds contextual info, is not reset */ info: { [k: string]: unknown; }; } export declare namespace VisualUpdateState { function create(): VisualUpdateState; function reset(state: VisualUpdateState): void; } export type LocationCallback = (loc: Location, isSecondary: boolean) => void; export interface QualityProps { quality: VisualQuality; detail: number; radialSegments: number; linearSegments: number; resolution: number; imageResolution: number; probePositions: number; doubleSided: boolean; xrayShaded: boolean | 'inverted'; alpha: number; transparentBackfaces: 'off' | 'on' | 'opaque'; } export declare const DefaultQualityThresholds: { lowestElementCount: number; lowerElementCount: number; lowElementCount: number; mediumElementCount: number; highElementCount: number; coarseGrainedFactor: number; elementCountFactor: number; }; export type QualityThresholds = typeof DefaultQualityThresholds; export declare function getStructureQuality(structure: Structure, tresholds?: Partial): VisualQuality; export declare function getQualityProps(props: Partial, data?: any): { detail: number; radialSegments: number; linearSegments: number; resolution: number; imageResolution: number; probePositions: number; doubleSided: boolean; };