/**
 * Provides basic stuff for disposable instances
 *
 * @export
 * @abstract
 * @class DisposableBase
 * @since 1.0.0
 */
export declare abstract class DisposableBase {
    protected _isDisposed: boolean;
    constructor();
    get isDisposed(): boolean;
    /**
     * Dispose the instance (cleanup internals). The instance should and can no longer be used afterwards
     *
     * @return {*}  {void}
     * @memberof DisposableBase
     * @since 1.0.0
     */
    dispose(): void;
    protected abstract disposingInstance(): void;
    protected abstract disposedInstance(): void;
    protected validateDisposed<T>(value_: T | undefined): T | never;
}
