import "./tc39.js"; export declare abstract class FDisposable { [Symbol.asyncDispose](): Promise; abstract dispose(): Promise; static disposeAll(...instances: ReadonlyArray): Promise; static instanceOf(test: unknown): test is FDisposable; } export declare abstract class FDisposableBase extends FDisposable { private _disposed?; private _disposingPromise?; get disposed(): boolean; get disposing(): boolean; dispose(): Promise; protected abstract onDispose(): void | Promise; protected verifyNotDisposed(): void; } export declare class FDisposableMixin extends FDisposableBase { static applyMixin(targetClass: any): void; protected onDispose(): void | Promise; private constructor(); } export declare function makeDisposable(dispose: () => void | Promise): FDisposable;