import * as THREE from 'three';
/** 一个对象在“排序发起时的旧布局”里占据的全局点索引区间及其到当前布局的位移。 */
export interface ReorderSegment {
    oldStart: number;
    oldEnd: number;
    delta: number;
    removed: boolean;
}
export declare class ReorderPass {
    static readonly SENTINEL = 4294967295;
    private readonly maxSeg;
    private material;
    private scene;
    private camera;
    private mesh;
    private segStart;
    private segEnd;
    private segDelta;
    private segRemoved;
    constructor(maxSeg?: number);
    /** 创建一张既能作为 reorder 输出、又能被主渲染 shader 以 usampler2D 采样的 R32UI 目标。 */
    static createOrderTarget(width: number, height: number): THREE.WebGLRenderTarget;
    /**
     * 执行一次 reorder。
     * @param srcOrder    旧 order 纹理（R32UI，usampler2D 可采样），内容为全局点索引 P
     * @param orderWidth  order 纹理宽度（实例 i → coord = (i%width, i/width)）
     * @param dst         输出目标（R32UI RenderTarget），尺寸需与 srcOrder 对应实例布局一致
     * @param segments    区间→位移/剔除段表（长度不应超过 maxSeg）
     */
    run(renderer: THREE.WebGLRenderer, srcOrder: THREE.Texture, orderWidth: number, dst: THREE.WebGLRenderTarget, segments: ReorderSegment[]): void;
    dispose(): void;
    private static readonly VERTEX;
    private static buildFragment;
}
