import type { ShaderMap } from '../core/CoreShaderManager.js'; import type { ExtractProps } from '../core/CoreTextureManager.js'; import type { Stage } from '../core/Stage.js'; import type { CoreShader } from '../core/renderers/CoreShader.js'; /** * Shader Controller Base Interface * * @remarks * Used directly this interface is like an `any` type for Shader Controllers. * But it is also used as a base for more specific Shader Controller interfaces. */ export interface BaseShaderController { type: keyof ShaderMap; shader: CoreShader; props: Record; getResolvedProps: () => Record; } /** * Shader Controller Class * * @remarks * This class is used to control shader props. */ export declare class ShaderController implements BaseShaderController { readonly type: S; readonly shader: InstanceType; private resolvedProps; props: ExtractProps; constructor(type: S, shader: InstanceType, props: ExtractProps, stage: Stage); getResolvedProps(): ExtractProps; }