/**
 * Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 */
import { ParamDefinition as PD } from '../../../mol-util/param-definition';
import { StructureRepresentation, StructureRepresentationProvider } from '../representation';
import { RepresentationParamsGetter, RepresentationContext } from '../../../mol-repr/representation';
import { ThemeRegistryContext } from '../../../mol-theme/theme';
import { Structure } from '../../../mol-model/structure';
export declare const GaussianVolumeParams: {
    visuals: PD.MultiSelect<"gaussian-volume" | "units-gaussian-volume">;
    ignoreHydrogens: PD.BooleanParam;
    includeParent: PD.BooleanParam;
    traceOnly: PD.BooleanParam;
    resolution: PD.Numeric;
    radiusOffset: PD.Numeric;
    smoothness: PD.Numeric;
    unitKinds: PD.MultiSelect<"spheres" | "atomic" | "gaussians">;
    doubleSided: PD.BooleanParam;
    flipSided: PD.BooleanParam;
    flatShaded: PD.BooleanParam;
    ignoreLight: PD.BooleanParam;
    xrayShaded: PD.BooleanParam;
    renderMode: PD.Mapped<PD.NamedParams<PD.Normalize<{
        controlPoints: import("../../../mol-math/linear-algebra/3d/vec2").Vec2[];
        list: {
            kind: "set" | "interpolate";
            colors: import("../../../mol-util/color/color").ColorListEntry[];
        };
    }>, "volume"> | PD.NamedParams<PD.Normalize<{
        isoValue: Readonly<{
            kind: "absolute";
            absoluteValue: number;
        }> | Readonly<{
            kind: "relative";
            relativeValue: number;
        }>;
        singleLayer: boolean;
    }>, "isosurface">>;
    stepsPerCell: PD.Numeric;
    jumpLength: PD.Numeric;
    alpha: PD.Numeric;
    quality: PD.Select<"custom" | "auto" | "highest" | "higher" | "high" | "medium" | "low" | "lower" | "lowest">;
};
export declare type GaussianVolumeParams = typeof GaussianVolumeParams;
export declare function getGaussianVolumeParams(ctx: ThemeRegistryContext, structure: Structure): {
    visuals: PD.MultiSelect<"gaussian-volume" | "units-gaussian-volume">;
    ignoreHydrogens: PD.BooleanParam;
    includeParent: PD.BooleanParam;
    traceOnly: PD.BooleanParam;
    resolution: PD.Numeric;
    radiusOffset: PD.Numeric;
    smoothness: PD.Numeric;
    unitKinds: PD.MultiSelect<"spheres" | "atomic" | "gaussians">;
    doubleSided: PD.BooleanParam;
    flipSided: PD.BooleanParam;
    flatShaded: PD.BooleanParam;
    ignoreLight: PD.BooleanParam;
    xrayShaded: PD.BooleanParam;
    renderMode: PD.Mapped<PD.NamedParams<PD.Normalize<{
        controlPoints: import("../../../mol-math/linear-algebra/3d/vec2").Vec2[];
        list: {
            kind: "set" | "interpolate";
            colors: import("../../../mol-util/color/color").ColorListEntry[];
        };
    }>, "volume"> | PD.NamedParams<PD.Normalize<{
        isoValue: Readonly<{
            kind: "absolute";
            absoluteValue: number;
        }> | Readonly<{
            kind: "relative";
            relativeValue: number;
        }>;
        singleLayer: boolean;
    }>, "isosurface">>;
    stepsPerCell: PD.Numeric;
    jumpLength: PD.Numeric;
    alpha: PD.Numeric;
    quality: PD.Select<"custom" | "auto" | "highest" | "higher" | "high" | "medium" | "low" | "lower" | "lowest">;
};
export declare type GaussianVolumeRepresentation = StructureRepresentation<GaussianVolumeParams>;
export declare function GaussianVolumeRepresentation(ctx: RepresentationContext, getParams: RepresentationParamsGetter<Structure, GaussianVolumeParams>): GaussianVolumeRepresentation;
export declare const GaussianVolumeRepresentationProvider: StructureRepresentationProvider<{
    visuals: PD.MultiSelect<"gaussian-volume" | "units-gaussian-volume">;
    ignoreHydrogens: PD.BooleanParam;
    includeParent: PD.BooleanParam;
    traceOnly: PD.BooleanParam;
    resolution: PD.Numeric;
    radiusOffset: PD.Numeric;
    smoothness: PD.Numeric;
    unitKinds: PD.MultiSelect<"spheres" | "atomic" | "gaussians">;
    doubleSided: PD.BooleanParam;
    flipSided: PD.BooleanParam;
    flatShaded: PD.BooleanParam;
    ignoreLight: PD.BooleanParam;
    xrayShaded: PD.BooleanParam;
    renderMode: PD.Mapped<PD.NamedParams<PD.Normalize<{
        controlPoints: import("../../../mol-math/linear-algebra/3d/vec2").Vec2[];
        list: {
            kind: "set" | "interpolate";
            colors: import("../../../mol-util/color/color").ColorListEntry[];
        };
    }>, "volume"> | PD.NamedParams<PD.Normalize<{
        isoValue: Readonly<{
            kind: "absolute";
            absoluteValue: number;
        }> | Readonly<{
            kind: "relative";
            relativeValue: number;
        }>;
        singleLayer: boolean;
    }>, "isosurface">>;
    stepsPerCell: PD.Numeric;
    jumpLength: PD.Numeric;
    alpha: PD.Numeric;
    quality: PD.Select<"custom" | "auto" | "highest" | "higher" | "high" | "medium" | "low" | "lower" | "lowest">;
}, "gaussian-volume">;
