import * as Bluebird from 'bluebird'; export interface DeferredTask { (): any; } export interface ErrorHook { (e: Error): any; } export declare class ScopeExit { static hooks: ErrorHook[]; static registerErrorHook(hook: ErrorHook): void; static clearErrorHooks(): void; private tasksOnFulfilled; private tasksOnRejected; defer(task: DeferredTask): ScopeExit; onFulfilled(task: DeferredTask): ScopeExit; onRejected(task: DeferredTask): ScopeExit; disposer(): Bluebird.Disposer; }