import type { Ref } from './types/outputs/Ref.js'; /** * Builds a Ref object around fn. * Produced object will deduplicate calls to fn, meaning that all "defer" calls made while fn is running won't call fn * again and all will return at the same time. * * @example * let value = 1; * * const ref = deferrable$(() => value); * console.log(ref.defer()); // prints 1 * * value = 2; * console.log(ref.defer()); // prints 2 * * @param fn function returning deferred value * * @since 2.0.0 */ export declare function ref$(fn: (signal: AbortSignal) => D): Ref;