import { EventArgs } from '@awesome-nodes/object/model';
import { EventDelegate } from "./EventDelegate";
import { IDisposable } from "./IDisposable";
import { ObjectModel } from "./ObjectModel";
/**
 * Represents a disposable object for single threaded environments.
 */
export declare class Disposable extends ObjectModel implements IDisposable {
    #private;
    protected onDisposing(args: EventArgs): void;
    protected onDisposed(args: EventArgs): void;
    /** @inheritDoc */
    dispose(disposing?: boolean): void;
    /** @inheritDoc */
    get disposing(): EventDelegate<IDisposable>;
    /** @inheritDoc */
    get disposed(): EventDelegate<IDisposable>;
    /** @inheritDoc */
    get isDisposed(): boolean;
}
