/**
 * Allows to feed a vertex attribute into the shader
 *
 *
 */
import { GlType } from './../../poly/registers/nodes/types/Gl';
import { TypedGlNode, BaseGlNodeType } from './_Base';
import { GlConnectionPointType, BaseGlConnectionPoint } from '../utils/io/connections/Gl';
import { ShadersCollectionController } from './code/utils/ShadersCollectionController';
export declare const ATTRIBUTE_NODE_AVAILABLE_GL_TYPES: GlConnectionPointType[];
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
declare class AttributeGlParamsConfig extends NodeParamsConfig {
    /** @param attribute name */
    name: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
    /** @param attribute type (float, vec2, vec3, vec4) */
    type: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param allows to export the attribute to a material (when used inside a particles system) */
    texportWhenConnected: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
    /** @param allows to export the attribute to a material (when used inside a particles system) */
    exportWhenConnected: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
}
export declare class AttributeGlNode extends TypedGlNode<AttributeGlParamsConfig> {
    paramsConfig: AttributeGlParamsConfig;
    static type(): Readonly<GlType.ATTRIBUTE>;
    static readonly INPUT_NAME = "in";
    static readonly OUTPUT_NAME = "val";
    initializeNode(): void;
    private _bound_setExportWhenConnectedStatus;
    private _setExportWhenConnectedStatus;
    setAttribSize(size: number): void;
    inputName(): string;
    outputName(): string;
    varyingName(): string;
    setLines(shadersCollectionController: ShadersCollectionController): void;
    attributeName(): string;
    glType(): GlConnectionPointType;
    setGlType(type: GlConnectionPointType): void;
    connected_input_node(): BaseGlNodeType | null;
    connected_input_connection_point(): BaseGlConnectionPoint | undefined;
    output_connection_point(): BaseGlConnectionPoint | undefined;
    isImporting(): boolean;
    isExporting(): boolean;
    private _setMatToRecompileIfIsExporting;
}
export {};
