/**
 * Copyright (c) 2020-2025 mol* contributors, licensed under MIT, See LICENSE file for more info.
 *
 * @author Alexander Rose <alexander.rose@weirdbyte.de>
 */
import { Scene } from '../../mol-gl/scene.js';
import { WebGLContext } from '../../mol-gl/webgl/context.js';
import { ParamDefinition as PD } from '../../mol-util/param-definition.js';
import { BoundingSphereHelper } from './bounding-sphere-helper.js';
import { CameraHelper } from './camera-helper.js';
import { HandleHelper } from './handle-helper.js';
import { PointerHelper } from './pointer-helper.js';
export declare const HelperParams: {
    debug: PD.Group<PD.Normalize<{
        sceneBoundingSpheres: boolean;
        visibleSceneBoundingSpheres: boolean;
        objectBoundingSpheres: boolean;
        instanceBoundingSpheres: boolean;
    }>>;
    camera: PD.Group<PD.Normalize<{
        helper: PD.Normalize<{
            axes: /*elided*/ any;
        }>;
    }>>;
    handle: PD.Group<PD.Normalize<{
        handle: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
            alpha: /*elided*/ any;
            ignoreLight: /*elided*/ any;
            colorX: /*elided*/ any;
            colorY: /*elided*/ any;
            colorZ: /*elided*/ any;
            scale: /*elided*/ any;
            doubleSided: /*elided*/ any;
            flipSided: /*elided*/ any;
            flatShaded: /*elided*/ any;
            celShaded: /*elided*/ any;
            xrayShaded: /*elided*/ any;
            transparentBackfaces: /*elided*/ any;
            bumpFrequency: /*elided*/ any;
            bumpAmplitude: /*elided*/ any;
            quality: /*elided*/ any;
            material: /*elided*/ any;
            clip: /*elided*/ any;
            emissive: /*elided*/ any;
            density: /*elided*/ any;
            instanceGranularity: /*elided*/ any;
            lod: /*elided*/ any;
            cellSize: /*elided*/ any;
            batchSize: /*elided*/ any;
        }>, "on">;
    }>>;
    pointer: PD.Group<PD.Normalize<{
        enabled: "off" | "on";
        ignoreLight: boolean;
        color: import("../../mol-util/color/index.js").Color;
        hitColor: import("../../mol-util/color/index.js").Color;
        doubleSided: boolean;
        flipSided: boolean;
        flatShaded: boolean;
        celShaded: boolean;
        xrayShaded: boolean | "inverted";
        transparentBackfaces: "off" | "on" | "opaque";
        bumpFrequency: number;
        bumpAmplitude: number;
        alpha: number;
        quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
        material: PD.Normalize<{
            metalness: number;
            roughness: number;
            bumpiness: number;
        }>;
        clip: PD.Normalize<{
            variant: /*elided*/ any;
            objects: /*elided*/ any;
        }>;
        emissive: number;
        density: number;
        instanceGranularity: boolean;
        lod: import("../../mol-math/linear-algebra.js").Vec3;
        cellSize: number;
        batchSize: number;
    }>>;
};
export declare const DefaultHelperProps: PD.Values<{
    debug: PD.Group<PD.Normalize<{
        sceneBoundingSpheres: boolean;
        visibleSceneBoundingSpheres: boolean;
        objectBoundingSpheres: boolean;
        instanceBoundingSpheres: boolean;
    }>>;
    camera: PD.Group<PD.Normalize<{
        helper: PD.Normalize<{
            axes: /*elided*/ any;
        }>;
    }>>;
    handle: PD.Group<PD.Normalize<{
        handle: PD.NamedParams<PD.Normalize<unknown>, "off"> | PD.NamedParams<PD.Normalize<{
            alpha: /*elided*/ any;
            ignoreLight: /*elided*/ any;
            colorX: /*elided*/ any;
            colorY: /*elided*/ any;
            colorZ: /*elided*/ any;
            scale: /*elided*/ any;
            doubleSided: /*elided*/ any;
            flipSided: /*elided*/ any;
            flatShaded: /*elided*/ any;
            celShaded: /*elided*/ any;
            xrayShaded: /*elided*/ any;
            transparentBackfaces: /*elided*/ any;
            bumpFrequency: /*elided*/ any;
            bumpAmplitude: /*elided*/ any;
            quality: /*elided*/ any;
            material: /*elided*/ any;
            clip: /*elided*/ any;
            emissive: /*elided*/ any;
            density: /*elided*/ any;
            instanceGranularity: /*elided*/ any;
            lod: /*elided*/ any;
            cellSize: /*elided*/ any;
            batchSize: /*elided*/ any;
        }>, "on">;
    }>>;
    pointer: PD.Group<PD.Normalize<{
        enabled: "off" | "on";
        ignoreLight: boolean;
        color: import("../../mol-util/color/index.js").Color;
        hitColor: import("../../mol-util/color/index.js").Color;
        doubleSided: boolean;
        flipSided: boolean;
        flatShaded: boolean;
        celShaded: boolean;
        xrayShaded: boolean | "inverted";
        transparentBackfaces: "off" | "on" | "opaque";
        bumpFrequency: number;
        bumpAmplitude: number;
        alpha: number;
        quality: "auto" | "medium" | "high" | "low" | "custom" | "highest" | "higher" | "lower" | "lowest";
        material: PD.Normalize<{
            metalness: number;
            roughness: number;
            bumpiness: number;
        }>;
        clip: PD.Normalize<{
            variant: /*elided*/ any;
            objects: /*elided*/ any;
        }>;
        emissive: number;
        density: number;
        instanceGranularity: boolean;
        lod: import("../../mol-math/linear-algebra.js").Vec3;
        cellSize: number;
        batchSize: number;
    }>>;
}>;
export type HelperProps = PD.Values<typeof HelperParams>;
export declare class Helper {
    readonly debug: BoundingSphereHelper;
    readonly camera: CameraHelper;
    readonly handle: HandleHelper;
    readonly pointer: PointerHelper;
    constructor(webgl: WebGLContext, scene: Scene, props?: Partial<HelperProps>);
}
