export interface ICorePostProcessing {
    /** indicator if postprocessing should be considered (switched off by CameraView.exitPostprocessing) */
    enabled: boolean;
    /** renderpass that needs several frames (like temporal anti aliasing) */
    accumulationPass?: IPostprocessingAccumulationPass;
    /** timeout handler to prevent post processing to start immediatly after orbitting */
    accumulationTimeout?: any;
    /** reference to ad renderpass that should care for specific objects */
    respectingIgnored3DObjects?: IRespectIgnored3DObjects;
}
export interface IRespectIgnored3DObjects {
    ignored3DObjects: Map<string, any>;
    /** set or overwrite label with object3d, group or mesh (do not use empty strings) */
    setIgnored3DObject(name: string, object: any): void;
    clearIgnored3DObjects(): void;
    removeIgnored3DObject(name: string): void;
}
export interface IPostprocessingAccumulationPass {
    accumulate: boolean;
    accumulationIndex: number;
    resetAccumulationIndex(): void;
    isAccumulationReached(): boolean;
}
declare type PossibleCameraViewNames = "all" | string[];
/**
 * sets object to be ignored in post processing for specific (or all) views
 * @param label
 * @param obj
 * @param cameraViewName
 */
export declare function setGlobalIgnore3DObjectInPostprocessing(label: string, obj: any, cameraViewName?: PossibleCameraViewNames): void;
/**
 * removes object to be ignored in post processing
 * @param label
 */
export declare function removeGlobalIgnore3DObjectInPostprocessing(label: string): void;
/**
 * updates the respectingIgnored3DObjects ignore list for all registered views
 */
export declare function refreshIgnorePostprocessingInCameraViews(): void;
export declare function getGlobalIgnored3DObjectsForCameraView(cameraViewName: PossibleCameraViewNames): any[];
export {};
