import { Constructor } from '../../../../types/GlobalTypes';
import { BaseController } from './_BaseController';
import { TypedMatNode } from '../_Base';
import { Material } from 'three';
import { NodeParamsConfig } from '../../utils/params/ParamsConfig';
export interface UniformsTransparencyControllers {
    uniformTransparency: UniformsTransparencyController;
}
export declare function UniformsTransparencyParamConfig<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        /** @param sets the material to transparent */
        transparent: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.BOOLEAN>;
        /** @param sets the material opacity */
        opacity: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.FLOAT>;
        /** @param sets the min alpha below which the material is invisible */
        alphaTest: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.FLOAT>;
    };
} & TBase;
type TransparencyMaterial = Material;
declare const TransparencyParamsConfig_base: {
    new (...args: any[]): {
        /** @param sets the material to transparent */
        transparent: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.BOOLEAN>;
        /** @param sets the material opacity */
        opacity: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.FLOAT>;
        /** @param sets the min alpha below which the material is invisible */
        alphaTest: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.FLOAT>;
    };
} & typeof NodeParamsConfig;
declare class TransparencyParamsConfig extends TransparencyParamsConfig_base {
}
declare class TransparencyMatNode extends TypedMatNode<TransparencyMaterial, TransparencyParamsConfig> {
    material(): Promise<Material | undefined>;
    controllers: UniformsTransparencyControllers;
}
export declare class UniformsTransparencyController extends BaseController {
    protected node: TransparencyMatNode;
    constructor(node: TransparencyMatNode);
    static update(node: TransparencyMatNode): Promise<void>;
    updateMaterial(material: TransparencyMaterial): void;
    private _updateTransparency;
    private _updateCommon;
}
export {};
