import type { Logger } from '@xylabs/logger'; import type { Promisable, PromiseEx } from '@xylabs/promise'; import { type ForgetConfig } from './ForgetConfig.ts'; /** A function that returns a promisable value. */ type PromisableFunction = () => Promisable; /** * Manages fire-and-forget promises with tracking, timeouts, and error handling. */ export declare class ForgetPromise { /** Number of currently active (unresolved) forgotten promises. */ static activeForgets: number; /** Number of forgotten promises that threw exceptions. */ static exceptedForgets: number; /** Logger instance used for error and warning output. */ static logger: Logger; /** Whether any forgotten promises are still active. */ static get active(): boolean; /** * Waits until all forgotten promises have completed. * @param interval - Polling interval in milliseconds. * @param timeout - Optional maximum wait time in milliseconds. * @returns The number of remaining active forgets (0 if all completed). */ static awaitInactive(interval?: number, timeout?: number): Promise; /** Handles exceptions from forgotten promises by logging error details. */ static exceptionHandler(error: Error, { name }: ForgetConfig, externalStackTrace?: string): void; /** * Used to explicitly launch an async function (or Promise) with awaiting it * @param promise The promise to forget * @param config Configuration of forget settings */ static forget(promise: Promise | PromiseEx | PromisableFunction | T, config?: ForgetConfig): void; /** Handles timeout events for forgotten promises by logging timeout details. */ static timeoutHandler(time: number, { name }: ForgetConfig, externalStackTrace?: string): void; } export {}; //# sourceMappingURL=ForgetPromise.d.ts.map