/// <reference types="node" />
import logger from 'hexo-log';
import { EventEmitter } from 'events';
import Promise from 'bluebird';
import ConsoleExtend from './extend/console';
declare type Callback = (err?: any, value?: any) => void;
declare class Context extends EventEmitter {
    base_dir: string;
    log: logger;
    extend: {
        console: ConsoleExtend;
    };
    constructor(base?: string, args?: {});
    init(): void;
    call(name: string, args: object, callback: Callback): any;
    call(name: string, callback?: Callback): any;
    exit(err?: Error): Promise<void>;
    unwatch(): void;
}
export = Context;
