UNPKG

tc39-weakrefs-shim

Version:
32 lines (31 loc) 1.52 kB
import { FinalizationGroup } from "../weakrefs.js"; import { TaskQueue } from "../utils/tasks/taskQueue.js"; interface RegisterObjectInfo<T> { (info: T): void; } interface UnregisterObjectInfo<T> { (info: T): void; } export interface CleanupFinalizationGroup { (finalizationGroup: FinalizationGroup): void; } export interface CheckForEmptyCells { (finalizationGroup: FinalizationGroup): boolean; } export interface FinalizationGroupJobs<ObjectInfo> { readonly checkForEmptyCells: CheckForEmptyCells; readonly cleanupFinalizationGroup: CleanupFinalizationGroup; setFinalized(...infos: Array<ObjectInfo>): void; getFinalizedInFinalizationGroup(finalizationGroup: FinalizationGroup): Set<ObjectInfo>; registerFinalizationGroup(finalizationGroup: FinalizationGroup, info: ObjectInfo): void; unregisterFinalizationGroup(finalizationGroup: FinalizationGroup, info: ObjectInfo): void; } export declare function createFinalizationGroupJobs<ObjectInfo>(scheduleCleanupFinalizationGroup: (finalizationGroup: FinalizationGroup) => number, hooks?: { registerObjectInfo?: RegisterObjectInfo<ObjectInfo>; unregisterObjectInfo?: UnregisterObjectInfo<ObjectInfo>; }): FinalizationGroupJobs<ObjectInfo>; export declare function createFinalizationGroupJobsForTaskQueue<ObjectInfo>(setTask: TaskQueue.Set<number>, hooks?: { registerObjectInfo?: RegisterObjectInfo<ObjectInfo>; unregisterObjectInfo?: UnregisterObjectInfo<ObjectInfo>; }): FinalizationGroupJobs<ObjectInfo>; export {};