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 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;
    reset(): void;
    update(viewportData: ViewportData, viewLineOptions: ViewLineOptions): number;
    draw?(pass: GPURenderPassEncoder, viewportData: ViewportData): void;
}
