import * as Config from '.'; export interface Hooks { [event: string]: object; init: { id: string | undefined; argv: string[]; }; prerun: { Command: Config.Command.Class; argv: string[]; }; update: {}; 'command_not_found': { id: string; }; 'plugins:parse': { pjson: Config.IPlugin; }; } export declare type Hook = (this: Hook.Context, options: Hooks[K] & { config: Config.IConfig; }) => any; export declare namespace Hook { interface Context { exit(code?: number): void; error(message: string | Error, options?: { code?: string; exit?: number; }): void; warn(message: string): void; log(message?: any): void; } }