import { Constructor, valueof } from '../../../../types/GlobalTypes';
import { WebGLRenderer } from 'three/src/renderers/WebGLRenderer';
import { EffectComposer } from '../../../../modules/three/examples/jsm/postprocessing/EffectComposer';
import { DisplayNodeController, DisplayNodeControllerCallbacks } from '../../utils/DisplayNodeController';
import { PostNodeChildrenMap } from '../../../poly/registers/nodes/Post';
import { TypedNode, BaseNodeType } from '../../_Base';
import { BasePostProcessNodeType } from '../_Base';
import { Scene } from 'three/src/scenes/Scene';
import { Camera } from 'three/src/cameras/Camera';
import { Vector2 } from 'three/src/math/Vector2';
import { BaseCameraObjNodeType } from '../../obj/_BaseCamera';
import { NodeParamsConfig } from '../../utils/params/ParamsConfig';
export declare class PostProcessNetworkParamsConfig extends NodeParamsConfig {
    prepend_render_pass: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../poly/ParamType").ParamType.BOOLEAN>;
    useRenderTarget: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../poly/ParamType").ParamType.BOOLEAN>;
    tmagFilter: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../poly/ParamType").ParamType.BOOLEAN>;
    magFilter: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../poly/ParamType").ParamType.INTEGER>;
    tminFilter: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../poly/ParamType").ParamType.BOOLEAN>;
    minFilter: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../poly/ParamType").ParamType.INTEGER>;
    stencilBuffer: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../poly/ParamType").ParamType.BOOLEAN>;
    sampling: import("../../utils/params/ParamsConfig").ParamTemplate<import("../../../poly/ParamType").ParamType.INTEGER>;
}
export interface BaseNetworkPostProcessNodeType extends TypedNode<any, PostProcessNetworkParamsConfig> {
    readonly display_node_controller: DisplayNodeController;
    createNode<S extends keyof PostNodeChildrenMap>(node_class: S): PostNodeChildrenMap[S];
    createNode<K extends valueof<PostNodeChildrenMap>>(node_class: Constructor<K>): K;
    children(): BasePostProcessNodeType[];
    nodesByType<K extends keyof PostNodeChildrenMap>(type: K): PostNodeChildrenMap[K][];
    readonly effects_composer_controller: EffectsComposerController;
}
interface CreateEffectsComposerOptions {
    renderer: WebGLRenderer;
    scene: Scene;
    camera: Camera;
    resolution: Vector2;
    requester: BaseNodeType;
    camera_node?: BaseCameraObjNodeType;
}
export declare class EffectsComposerController {
    private node;
    constructor(node: BaseNetworkPostProcessNodeType);
    display_node_controller_callbacks(): DisplayNodeControllerCallbacks;
    create_effects_composer(options: CreateEffectsComposerOptions): EffectComposer;
    private _renderer_size;
    private _create_render_target;
    private _build_passes;
}
export {};
