import 'reflect-metadata';
import { ILayer } from '../../layer/ILayerService';
import { IShaderModuleService } from '../../shader/IShaderModuleService';
import { PassType } from '../IMultiPassRenderer';
import BaseNormalPass from './BaseNormalPass';
/**
 * TAA（Temporal Anti-Aliasing）
 * 在需要后处理的场景中（例如 L7 的热力图需要 blur pass、PBR 中的 SSAO 环境光遮蔽），无法使用浏览器内置的 MSAA，
 * 只能使用 TAA
 * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/ri52hv
 */
export default class TAAPass<InitializationOptions = {}> extends BaseNormalPass<InitializationOptions> {
    protected readonly shaderModuleService: IShaderModuleService;
    /**
     * 低差异序列
     */
    private haltonSequence;
    /**
     * 当前累加任务 ID，例如用户连续拖拽时上一次累加很有可能没有结束，此时在开启新一轮累加之前需要结束掉之前未完成的
     */
    private accumulatingId;
    /**
     * 每一轮累加中的 frameID
     */
    private frame;
    /**
     * 每一轮累加中的 frame 定时器
     */
    private timer;
    private sampleRenderTarget;
    private prevRenderTarget;
    private outputRenderTarget;
    private copyRenderTarget;
    private blendModel;
    private outputModel;
    private copyModel;
    getType(): PassType;
    getName(): string;
    init(layer: ILayer, config?: Partial<InitializationOptions>): void;
    render(layer: ILayer): void;
    private doRender;
    /**
     * 是否已经完成累加
     * @return {boolean} isFinished
     */
    private isFinished;
    private resetFrame;
    private stopAccumulating;
    private createTriangleModel;
}
