import type { ShaderMap } from "../core/CoreShaderManager.js";
import type { ExtractProps } from "../core/CoreTextureManager.js";
import type { INode } from "./INode.js";
import type { SpecificShaderRef } from "./RendererMain.js";
export declare abstract class IShaderController {
    readonly shaderRef: SpecificShaderRef<keyof ShaderMap>;
    node: INode | null;
    constructor(shaderRef: SpecificShaderRef<keyof ShaderMap>);
    defineProps(props: ExtractProps<ShaderMap[keyof ShaderMap]>): void;
    attachNode(node: INode): void;
    abstract loadShader(): void;
    abstract setProp(propName: string, value: unknown): void;
    abstract getProp(propName: string): unknown;
}
