import { Emitter, Event } from './event'; export declare class DisposableStore implements IDisposable { private toDispose; private _isDisposed; /** * Dispose of all registered disposables and mark this object as disposed. * * Any future disposables added to this object will be disposed of on `add`. */ dispose(): void; /** * Dispose of all registered disposables but do not mark this object as disposed. */ clear(): void; add(t: T): T; addAll(disposables: IDisposable[]): void; } export interface IDisposable { /** * Dispose this object. */ dispose(): void; } export declare function isDisposable(thing: E): thing is E & IDisposable; export declare function dispose(disposable: T): T; export declare function dispose(...disposables: Array): T[]; export declare function dispose(disposables: T[]): T[]; export declare function combinedDisposable(disposables: IDisposable[]): IDisposable; export declare function toDisposable(fn: () => void): IDisposable; export declare class Disposable implements IDisposable { protected readonly disposables: IDisposable[]; protected readonly onDisposeEmitter: Emitter; constructor(...toDispose: IDisposable[]); static create(func: () => void): IDisposable; static NULL: IDisposable; static None: Readonly; get onDispose(): Event; protected checkDisposed(): void; get disposed(): boolean; private disposingElements; dispose(): void; addDispose(disposable: IDisposable): IDisposable; addDispose(disposable: IDisposable[]): IDisposable[]; protected registerDispose(disposable: T): T; private add; } export declare class DisposableCollection implements IDisposable { protected readonly disposables: IDisposable[]; protected readonly onDisposeEmitter: Emitter; constructor(...toDispose: IDisposable[]); get onDispose(): Event; protected checkDisposed(): void; get disposed(): boolean; private disposingElements; dispose(): void; push(disposable: IDisposable): IDisposable; pushAll(disposables: IDisposable[]): IDisposable[]; } /** * Manages the lifecycle of a disposable value that may be changed. * * This ensures that when the the disposable value is changed, the previously held disposable is disposed of. You can * also register a `MutableDisposable` on a `Disposable` to ensure it is automatically cleaned up. */ export declare class MutableDisposable implements IDisposable { private _value?; private _isDisposed; constructor(); get value(): T | undefined; set value(value: T | undefined); clear(): void; dispose(): void; } export declare class RefCountedDisposable { private readonly _disposable; private _counter; constructor(_disposable: IDisposable); get disposed(): boolean; acquire(): this; release(): this; } export declare class DisposableMap extends Map implements IDisposable { disposeKey(key: K): void; dispose(): void; } //# sourceMappingURL=disposable.d.ts.map