import type { ViewConfigurationChangedEvent, ViewLinesChangedEvent, ViewLinesDeletedEvent, ViewLinesInsertedEvent, ViewScrollChangedEvent, ViewTokensChangedEvent } from '../../common/viewEvents.js'; import type { ViewportData } from '../../common/viewLayout/viewLinesViewportData.js'; import type { ViewLineOptions } from '../viewParts/viewLines/viewLineOptions.js'; export declare const enum BindingId { GlyphInfo = 0, Cells = 1, TextureSampler = 2, Texture = 3, LayoutInfoUniform = 4, AtlasDimensionsUniform = 5, ScrollOffset = 6 } export interface IGpuRenderStrategy { readonly wgsl: string; readonly bindGroupEntries: GPUBindGroupEntry[]; onLinesDeleted(e: ViewLinesDeletedEvent): boolean; onConfigurationChanged(e: ViewConfigurationChangedEvent): boolean; onTokensChanged(e: ViewTokensChangedEvent): boolean; onLinesInserted(e: ViewLinesInsertedEvent): boolean; onLinesChanged(e: ViewLinesChangedEvent): boolean; onScrollChanged(e?: ViewScrollChangedEvent): boolean; /** * Resets the render strategy, clearing all data and setting up for a new frame. */ reset(): void; update(viewportData: ViewportData, viewLineOptions: ViewLineOptions): number; draw?(pass: GPURenderPassEncoder, viewportData: ViewportData): void; }