import type { IAnimationController } from '../common/IAnimationController.js';
import type { ShaderMap } from '../core/CoreShaderManager.js';
import type { Stage } from '../core/Stage.js';
import type { AnimationSettings } from '../core/animations/CoreAnimation.js';
import type { INode } from './INode.js';
import type { SpecificShaderRef } from './RendererMain.js';
export declare abstract class IShaderNode {
    shaderType: keyof ShaderMap;
    props: SpecificShaderRef<keyof ShaderMap>['props'];
    propsList: string[];
    node: INode | null;
    stage: Stage | null;
    constructor(shaderType: keyof ShaderMap, props: SpecificShaderRef<keyof ShaderMap>['props']);
    connectNode(node: INode): void;
    abstract loadShader(): void;
    abstract animate(props: Record<string, number>, settings: Partial<AnimationSettings>): IAnimationController;
}
