import { Effect, EffectPass } from 'postprocessing';
import { Reactive, ShallowRef } from 'vue';
/**
 * @param newEffectFunction - A function that returns a new effect instance.
 * @param passDependencies - A reactive object that the pass depends on (usually props). Changes to this object will trigger re-rendering.
 * @param dependencyFieldsTriggeringRecreation - fields in passDependencies that require effect recreation when changed
 */
export declare const useEffectPmndrs: <T extends Effect, D extends Record<PropertyKey, any>>(newEffectFunction: () => T, passDependencies: Reactive<D>, dependencyFieldsTriggeringRecreation?: (keyof D)[]) => {
    pass: ShallowRef<EffectPass | null>;
    effect: ShallowRef<T | null>;
};
