weak-event
Version:
C#-Style Typescript Events/Weak Events
16 lines (15 loc) • 873 B
TypeScript
import { ITypedEvent, TypedEventHandler } from '../typed-event-interfaces';
export declare type FinalizableEventHandlerRef<TSender, TArgs> = {
eventSource: ITypedEvent<TSender, TArgs>;
handlerRef: WeakRef<TypedEventHandler<TSender, TArgs>>;
};
declare type Finalizer<TSender, TArgs> = (heldValue: FinalizableEventHandlerRef<TSender, TArgs>) => void;
export declare class WeakHandlerHolder<TSender, TArgs> {
private _finalizationRegistry;
private _refs;
constructor(finalizer: Finalizer<TSender, TArgs>);
getWeakHandler(eventSource: ITypedEvent<TSender, TArgs>, handler: TypedEventHandler<TSender, TArgs>): WeakRef<TypedEventHandler<TSender, TArgs>>;
releaseWeakHandler(handler: TypedEventHandler<TSender, TArgs>): WeakRef<TypedEventHandler<TSender, TArgs>>;
unregisterRef(ref: WeakRef<TypedEventHandler<TSender, TArgs>>): void;
}
export {};