import { Constructor } from '../../../../types/GlobalTypes'; import { BaseController } from './_BaseController'; import { Material } from 'three/src/materials/Material'; import { Texture } from 'three/src/textures/Texture'; import { BaseMatNodeType } from '../_Base'; import { NodeContext } from '../../../poly/NodeContext'; import { OperatorPathParam } from '../../../params/OperatorPath'; import { BooleanParam } from '../../../params/Boolean'; import { BaseNodeType } from '../../_Base'; import { BaseParamType } from '../../../params/_Base'; import { ShaderMaterial } from 'three/src/materials/ShaderMaterial'; import { IUniform } from 'three/src/renderers/shaders/UniformsLib'; export declare function TextureMapParamConfig(Base: TBase): { new (...args: any[]): { useMap: import("../../utils/params/ParamsConfig").ParamTemplate; map: import("../../utils/params/ParamsConfig").ParamTemplate; }; } & TBase; declare type FilterFlags = { [Key in keyof Base]: Base[Key] extends Condition ? Key : never; }; declare type AllowedNames = FilterFlags[keyof Base]; declare type SubType = Pick>; export declare function BooleanParamOptions(controller_class: typeof BaseTextureMapController): { cook: boolean; callback: (node: BaseNodeType, param: BaseParamType) => void; }; export declare function OperatorPathOptions(controller: typeof BaseTextureMapController, use_map_name: string): { visibleIf: { [x: string]: number; }; nodeSelection: { context: NodeContext; }; cook: boolean; callback: (node: BaseNodeType, param: BaseParamType) => void; }; declare type CurrentMaterial = Material | ShaderMaterial; export interface UpdateOptions { direct_params?: boolean; uniforms?: boolean; } export declare class BaseTextureMapController extends BaseController { protected node: BaseMatNodeType; protected _update_options: UpdateOptions; constructor(node: BaseMatNodeType, _update_options: UpdateOptions); protected add_hooks(use_map_param: BooleanParam, path_param: OperatorPathParam): void; static update(node: BaseNodeType): void; _update(material: M, mat_attrib_name: string, use_map_param: BooleanParam, path_param: OperatorPathParam): Promise; _update_texture_on_uniforms(material: ShaderMaterial, mat_attrib_name: keyof SubType, use_map_param: BooleanParam, path_param: OperatorPathParam): Promise; private _apply_texture_on_uniforms; private _remove_texture_from_uniforms; _update_texture_on_material(material: M, mat_attrib_name: keyof SubType, use_map_param: BooleanParam, path_param: OperatorPathParam): Promise; private _apply_texture_on_material; private _remove_texture_from_material; private _update_required_attribute; } export {};