export declare class Hook { private hooks; pre(name: string, fn: Function): this; post(name: string, fn: Function): this; private add; execPre(name: string, ctx?: any): PromiseLike; execPost(name: string, ctx?: any): PromiseLike; private exec; wrap(name: string, fn: T, ctx?: any): T; private thenable; }