import { ViewEventHandler } from "../../common/viewEventHandler.js";
import { type ViewConfigurationChangedEvent, type ViewDecorationsChangedEvent, type ViewLineMappingChangedEvent, type ViewLinesChangedEvent, type ViewLinesDeletedEvent, type ViewLinesInsertedEvent, type ViewScrollChangedEvent, type ViewThemeChangedEvent, type ViewTokensChangedEvent, type ViewZonesChangedEvent } from "../../common/viewEvents.js";
import type { ViewportData } from "../../common/viewLayout/viewLinesViewportData.js";
import type { ViewContext } from "../../common/viewModel/viewContext.js";
import type { ViewLineOptions } from "../viewParts/viewLines/viewLineOptions.js";
import { type IGpuRenderStrategy } from "./gpu.js";
import { ViewGpuContext } from "./viewGpuContext.js";
export declare class FullFileRenderStrategy extends ViewEventHandler implements IGpuRenderStrategy {
    private readonly _context;
    private readonly _viewGpuContext;
    private readonly _device;
    readonly wgsl: string;
    private readonly _glyphRasterizer;
    private _cellBindBuffer;
    private _cellValueBuffers;
    private _activeDoubleBufferIndex;
    private readonly _upToDateLines;
    private _visibleObjectCount;
    private _finalRenderedLine;
    private _scrollOffsetBindBuffer;
    private _scrollOffsetValueBuffer;
    private _scrollInitialized;
    private readonly _queuedBufferUpdates;
    get bindGroupEntries(): GPUBindGroupEntry[];
    constructor(_context: ViewContext, _viewGpuContext: ViewGpuContext, _device: GPUDevice);
    onConfigurationChanged(e: ViewConfigurationChangedEvent): boolean;
    onDecorationsChanged(e: ViewDecorationsChangedEvent): boolean;
    onTokensChanged(e: ViewTokensChangedEvent): boolean;
    onLinesDeleted(e: ViewLinesDeletedEvent): boolean;
    onLinesInserted(e: ViewLinesInsertedEvent): boolean;
    onLinesChanged(e: ViewLinesChangedEvent): boolean;
    onScrollChanged(e?: ViewScrollChangedEvent): boolean;
    onThemeChanged(e: ViewThemeChangedEvent): boolean;
    onLineMappingChanged(e: ViewLineMappingChangedEvent): boolean;
    onZonesChanged(e: ViewZonesChangedEvent): boolean;
    private _invalidateAllLines;
    private _invalidateLinesFrom;
    private _invalidateLineRange;
    reset(): void;
    update(viewportData: ViewportData, viewLineOptions: ViewLineOptions): number;
    draw(pass: GPURenderPassEncoder, viewportData: ViewportData): void;
    private _queueBufferUpdate;
}
