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 WireframeShaderMaterialControllers {
    wireframeShader: WireframeShaderMaterialController;
}
export declare function WireframeShaderMaterialParamsConfig<TBase extends Constructor>(Base: TBase): {
    new (...args: any[]): {
        /** @param toggle on to set material to wireframe */
        wireframe: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.BOOLEAN>;
        /** @param wireframe line width */
        wireframeLinewidth: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.FLOAT>;
    };
} & TBase;
declare const WireframeShaderParamsConfig_base: {
    new (...args: any[]): {
        /** @param toggle on to set material to wireframe */
        wireframe: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.BOOLEAN>;
        /** @param wireframe line width */
        wireframeLinewidth: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../index_all").ParamType.FLOAT>;
    };
} & typeof NodeParamsConfig;
declare class WireframeShaderParamsConfig extends WireframeShaderParamsConfig_base {
}
declare class WireframedShaderMatNode extends TypedMatNode<Material, WireframeShaderParamsConfig> {
    material(): Promise<Material | undefined>;
    controllers: WireframeShaderMaterialControllers;
}
export declare class WireframeShaderMaterialController extends BaseController {
    protected node: WireframedShaderMatNode;
    constructor(node: WireframedShaderMatNode);
    static update(node: WireframedShaderMatNode): Promise<void>;
    updateMaterial(material: Material): void;
}
export {};
