import { Attributes } from "graphology-types"; import Sigma from "../sigma.js"; import { NodeDisplayData, NonEmptyArray, RenderParams } from "../types.js"; import { NodeHoverDrawingFunction } from "./node-hover.js"; import { NodeLabelDrawingFunction } from "./node-labels.js"; import { AbstractProgram, Program } from "./program.js"; export declare abstract class AbstractNodeProgram extends AbstractProgram { abstract drawLabel: NodeLabelDrawingFunction | undefined; abstract drawHover: NodeHoverDrawingFunction | undefined; abstract process(nodeIndex: number, offset: number, data: NodeDisplayData): void; } export declare abstract class NodeProgram extends Program implements AbstractNodeProgram { drawLabel: NodeLabelDrawingFunction | undefined; drawHover: NodeHoverDrawingFunction | undefined; kill(): void; process(nodeIndex: number, offset: number, data: NodeDisplayData): void; abstract processVisibleItem(nodeIndex: number, i: number, data: NodeDisplayData): void; } declare class _NodeProgramClass implements AbstractNodeProgram { constructor(_gl: WebGLRenderingContext, _pickingBuffer: WebGLFramebuffer | null, _renderer: Sigma); drawLabel: NodeLabelDrawingFunction | undefined; drawHover: NodeHoverDrawingFunction | undefined; kill(): void; reallocate(_capacity: number): void; process(_nodeIndex: number, _offset: number, _data: NodeDisplayData): void; render(_params: RenderParams): void; } export type NodeProgramType = typeof _NodeProgramClass; export declare function createNodeCompoundProgram(programClasses: NonEmptyArray>, drawLabel?: NodeLabelDrawingFunction, drawHover?: NodeLabelDrawingFunction): NodeProgramType; export {};