/**
 * Copyright (c) 2018-2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 */
import { Structure } from '../mol-model/structure';
import { VisualQuality } from '../mol-geo/geometry/base';
export interface VisualUpdateState {
    updateTransform: boolean;
    updateMatrix: boolean;
    updateColor: boolean;
    updateSize: 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 interface QualityProps {
    quality: VisualQuality;
    detail: number;
    radialSegments: number;
    linearSegments: number;
    resolution: number;
    probePositions: number;
    doubleSided: boolean;
    xrayShaded: boolean;
    alpha: number;
}
export declare const DefaultQualityThresholds: {
    lowestElementCount: number;
    lowerElementCount: number;
    lowElementCount: number;
    mediumElementCount: number;
    highElementCount: number;
    coarseGrainedFactor: number;
    elementCountFactor: number;
};
export declare type QualityThresholds = typeof DefaultQualityThresholds;
export declare function getStructureQuality(structure: Structure, tresholds?: Partial<QualityThresholds>): VisualQuality;
export declare function getQualityProps(props: Partial<QualityProps>, data?: any): {
    detail: number;
    radialSegments: number;
    linearSegments: number;
    resolution: number;
    probePositions: number;
    doubleSided: boolean;
};
