import type { ComponentTypeEnum } from '../../foundation/definitions/ComponentType'; import type { CompositionTypeEnum } from '../../foundation/definitions/CompositionType'; import type { AbstractShaderNode } from '../../foundation/materials/core/AbstractShaderNode'; import type { Socket, SocketDefaultValue } from '../../foundation/materials/core/Socket'; import type { Engine } from '../../foundation/system/Engine'; export declare abstract class CommonShaderPart { abstract getMainBegin(engine: Engine, isVertexStage: boolean): string; abstract getMainEnd(engine: Engine, isVertexStage: boolean): string; abstract getVertexPrerequisites(engine: Engine, shaderNodes: AbstractShaderNode[]): string; abstract getPixelPrerequisites(engine: Engine, shaderNodes: AbstractShaderNode[]): string; abstract getAssignmentStatement(engine: Engine, varName: string, inputSocket: Socket): string; abstract getAssignmentVaryingStatementInPixelShader(engine: Engine, varName: string, inputSocket: Socket, inputNode: AbstractShaderNode, outputNameOfPrev: string): string; abstract getVertexShaderDefinitions(engine: Engine): string; abstract getPixelShaderDefinitions(engine: Engine): string; }