import type { Deferrable } from './types/inputs/Deferrable.js'; import type { AnyAwaitableIterable } from './types/inputs/MinimalIterator.js'; import type { Mutable } from './types/inputs/Mutable.js'; import type { Subscribable, SubscribableHolder } from './types/inputs/Subscribable.js'; import type { Awaitable } from './types/utils.js'; export type ResourceFeature = AnyAwaitableIterable | Subscribable | Deferrable> | Mutable>; /** * Helper to build complex resource types. */ export interface ResourceBuilder { /** * Adds defined feature to resource. * @param feature */ add>(feature: F): ResourceBuilder & F>; /** * Adds subscribable feature based on given holder. * @param holder */ add>(holder: F): ResourceBuilder & Subscribable>; /** * Return final resource object. */ build(): R; } /** * Helper to build complex resource types. * * @since 1.0.0 * @version 2.5.0 Add support for async iterators */ export declare function resource$(): ResourceBuilder;