import { BaseJsNodeType } from '../_Base'; import { TypedJsDefinitionCollection } from './JsDefinitionCollection'; import { JsConnectionPointType } from '../../utils/io/connections/Js'; export declare enum JsDefinitionType { ATTRIBUTE = "attribute", FUNCTION = "function", UNIFORM = "uniform" } export declare abstract class TypedJsDefinition { protected _definition_type: T; protected _data_type: JsConnectionPointType; protected _node: BaseJsNodeType; protected _name: string; constructor(_definition_type: T, _data_type: JsConnectionPointType, _node: BaseJsNodeType, _name: string); get definition_type(): T; get data_type(): JsConnectionPointType; get node(): BaseJsNodeType; name(): string; abstract get line(): string; collection_instance(): TypedJsDefinitionCollection; } export declare class AttributeGLDefinition extends TypedJsDefinition { protected _node: BaseJsNodeType; protected _data_type: JsConnectionPointType; protected _name: string; constructor(_node: BaseJsNodeType, _data_type: JsConnectionPointType, _name: string); get line(): string; } export declare class FunctionJsDefinition extends TypedJsDefinition { protected _node: BaseJsNodeType; protected _name: string; constructor(_node: BaseJsNodeType, _name: string); get line(): string; } export declare class UniformJsDefinition extends TypedJsDefinition { protected _node: BaseJsNodeType; protected _data_type: JsConnectionPointType; protected _name: string; constructor(_node: BaseJsNodeType, _data_type: JsConnectionPointType, _name: string); get line(): string; } export declare type BaseJsDefinition = TypedJsDefinition;