export interface TestHookOptions { description?: string; stdout?: string | boolean; stderr?: string | boolean; exit?: number; root?: string; } export declare type TestHookCallback = (output: T & { error?: Error; }) => Promise | void; export interface TestHook { (event: string, hookOpts: object, opts: TestHookOptions & { stdout: true; stderr: true; }, fn: TestHookCallback<{ stdout: string; stderr: string; }>): void; (event: string, hookOpts: object, opts: TestHookOptions & { stdout: true; }, fn: TestHookCallback<{ stdout: string; }>): void; (event: string, hookOpts: object, opts: TestHookOptions & { stderr: true; }, fn: TestHookCallback<{ stderr: string; }>): void; (event: string, hookOpts?: object, opts?: TestHookOptions, fn?: TestHookCallback<{}>): void; } export declare const testHook: TestHook;