import 'reflect-metadata';
import { ILayer } from '../../layer/ILayerService';
import { IMultiPassRenderer, IPass, IPostProcessor } from '../IMultiPassRenderer';
/**
 * ported from Three.js EffectComposer
 * @example
 * const renderer = new MultiPassRenderer([
 *   new ClearPass(),
 *   new RenderPass({
 *     models: [
 *       new Model(),
 *       new Model(),
 *     ],
 *   }),
 *   new CopyPass({
 *     renderToScreen: true,
 *   }),
 *   new TAAPass(),
 * ]);
 * renderer.render();
 * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/apuvbf#dRM8W
 */
export default class MultiPassRenderer implements IMultiPassRenderer {
    private passes;
    private postProcessor;
    private layer;
    private renderFlag;
    private width;
    private height;
    setLayer(layer: ILayer): void;
    setRenderFlag(renderFlag: boolean): void;
    getRenderFlag(): boolean;
    getPostProcessor(): IPostProcessor;
    render(): Promise<void>;
    resize(width: number, height: number): void;
    add<T>(pass: IPass<T>, config?: Partial<T>): void;
    insert<T>(pass: IPass<T>, config: Partial<T>, index: number): void;
    destroy(): void;
}
