import { IDisposable, IExternalDisposeCallback } from '../types/disposable';
export declare class DisposableResource<T> implements IDisposable {
    protected _innerResource: T;
    protected _disposeCallback: IExternalDisposeCallback<T>;
    protected _isDisposed: boolean | undefined;
    constructor(innerResource: T, disposeCallback: IExternalDisposeCallback<T>);
    dispose(): Promise<void> | void;
    /**
     * Returns undefined if dispose in progress
     */
    isDisposed(): boolean | undefined;
    protected finishDisposing(): void;
}
