import { Attributes } from "graphology-types"; import Sigma from "../sigma.js"; import { EdgeDisplayData, NodeDisplayData, RenderParams } from "../types.js"; import { EdgeLabelDrawingFunction } from "./edge-labels.js"; import { AbstractProgram, Program } from "./program.js"; export declare abstract class AbstractEdgeProgram extends AbstractProgram { abstract drawLabel: EdgeLabelDrawingFunction | undefined; abstract process(edgeIndex: number, offset: number, sourceData: NodeDisplayData, targetData: NodeDisplayData, data: EdgeDisplayData): void; } export declare abstract class EdgeProgram extends Program implements AbstractEdgeProgram { drawLabel: EdgeLabelDrawingFunction | undefined; kill(): void; process(edgeIndex: number, offset: number, sourceData: NodeDisplayData, targetData: NodeDisplayData, data: EdgeDisplayData): void; abstract processVisibleItem(edgeIndex: number, startIndex: number, sourceData: NodeDisplayData, targetData: NodeDisplayData, data: EdgeDisplayData): void; } declare class _EdgeProgramClass implements AbstractEdgeProgram { constructor(_gl: WebGLRenderingContext, _pickingBuffer: WebGLFramebuffer | null, _renderer: Sigma); drawLabel: EdgeLabelDrawingFunction | undefined; kill(): void; reallocate(_capacity: number): void; process(_edgeIndex: number, _offset: number, _sourceData: NodeDisplayData, _targetData: NodeDisplayData, _data: EdgeDisplayData): void; render(_params: RenderParams): void; } export type EdgeProgramType = typeof _EdgeProgramClass; export declare function createEdgeCompoundProgram(programClasses: Array>, drawLabel?: EdgeLabelDrawingFunction): EdgeProgramType; export {};