import { Constructor } from '../../../../types/GlobalTypes';
import { BaseController } from './_BaseController';
import { TypedMatNode } from '../_Base';
import { PointsMaterial } from 'three';
import { NodeParamsConfig } from '../../utils/params/ParamsConfig';
export interface PointsSizeControllers {
    pointsSize: PointsSizeController;
}
export declare function PointsParamConfig<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        size: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.FLOAT>;
        sizeAttenuation: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.BOOLEAN>;
    };
} & TBase;
declare const PointsParamsConfig_base: {
    new (...args: any[]): {
        size: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.FLOAT>;
        sizeAttenuation: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.BOOLEAN>;
    };
} & typeof NodeParamsConfig;
declare class PointsParamsConfig extends PointsParamsConfig_base {
}
declare class PointsSizeMatNode extends TypedMatNode<PointsMaterial, PointsParamsConfig> {
    material(): Promise<PointsMaterial | undefined>;
    controllers: PointsSizeControllers;
}
export declare class PointsSizeController extends BaseController {
    protected node: PointsSizeMatNode;
    constructor(node: PointsSizeMatNode);
    static update(node: PointsSizeMatNode): Promise<void>;
    updateMaterial(material: PointsMaterial): void;
}
export {};
