UNPKG

1.48 kBTypeScriptView Raw
1import { Event, Emitter } from './event';
2export interface Disposable {
3 /**
4 * Dispose this object.
5 */
6 dispose(): void;
7}
8export declare namespace Disposable {
9 function is(arg: unknown): arg is Disposable;
10 function create(func: () => void): Disposable;
11 /** Always provides a reference to a new disposable. */
12 const NULL: Disposable;
13}
14export declare class DisposableCollection implements Disposable {
15 protected readonly disposables: Disposable[];
16 protected readonly onDisposeEmitter: Emitter<void>;
17 constructor(...toDispose: Disposable[]);
18 /**
19 * This event is fired only once
20 * on first dispose of not empty collection.
21 */
22 get onDispose(): Event<void>;
23 protected checkDisposed(): void;
24 get disposed(): boolean;
25 private disposingElements;
26 dispose(): void;
27 push(disposable: Disposable): Disposable;
28 pushAll(disposables: Disposable[]): Disposable[];
29}
30export declare type DisposableGroup = {
31 push(disposable: Disposable): void;
32} | {
33 add(disposable: Disposable): void;
34};
35export declare namespace DisposableGroup {
36 function canPush(candidate?: DisposableGroup): candidate is {
37 push(disposable: Disposable): void;
38 };
39 function canAdd(candidate?: DisposableGroup): candidate is {
40 add(disposable: Disposable): void;
41 };
42}
43export declare function disposableTimeout(...args: Parameters<typeof setTimeout>): Disposable;
44//# sourceMappingURL=disposable.d.ts.map
\No newline at end of file