/** Floats per line instance. */ export declare const LINE_FLOATS_PER_INSTANCE = 12; /** Bytes per line instance. */ export declare const LINE_BYTES_PER_INSTANCE: number; export declare class LinePipeline { readonly pipeline: GPURenderPipeline; readonly bindGroupLayout: GPUBindGroupLayout; private device; private instanceBuffer; private instanceCapacity; private instanceData; private instanceCount; private constructor(); /** Create the pipeline with its shader module and bind group layout. */ static create(device: GPUDevice, format: GPUTextureFormat, _uniformBuffer: GPUBuffer): LinePipeline; /** Reset instance count for a new frame. */ reset(): void; /** Push a solid line segment. */ pushLine(x0: number, y0: number, x1: number, y1: number, r: number, g: number, b: number, a: number, width: number): void; /** Push a dashed line segment. */ pushDashedLine(x0: number, y0: number, x1: number, y1: number, r: number, g: number, b: number, a: number, width: number, dashLen: number, gapLen: number): void; /** Upload instance data to GPU and return draw parameters. */ flush(uniformBuffer: GPUBuffer): { bindGroup: GPUBindGroup; vertexCount: number; instanceCount: number; } | null; /** Release GPU resources. */ destroy(): void; private _pushInstance; /** Grow the instance buffer and staging array if needed (power-of-two). */ private _ensureCapacity; }