/** * @module Utilities */ import { type Invocable } from "../../utilities/functions/invocable.js"; import { type Promisable } from "../../utilities/types/promiseable.type.js"; /** * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type Lazy = Invocable<[], TValue>; /** * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type Lazyable = TValue | Lazy; /** * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type AsyncLazy = Invocable<[], Promisable>; /** * IMPORT_PATH: `"@daiso-tech/core/utilities"` */ export type AsyncLazyable = TValue | AsyncLazy; /** * @internal */ export declare function isLazy(lazyable: Lazyable): lazyable is Lazy; /** * @internal */ export declare function isPromiseLike(value: unknown): value is PromiseLike; /** * @internal */ export declare function isAsyncLazy(lazyable: AsyncLazyable): lazyable is AsyncLazy; /** * @internal */ export declare function resolveLazyable(lazyable: Lazyable): TValue; /** * @internal */ export declare function resolveAsyncLazyable(lazyable: AsyncLazyable): Promise;