declare var module: any; declare function require(name:string); declare var __filename: string; declare var __dirname: string; var checkArguments = require('./helpers/checkArguments'); var _ = require('lodash'); module Base { export class BaseTask { constructor() { return this; } static dependency:any = null; static async:boolean = true; static isActive:boolean = false; static taskName:string = null; static required:Array = []; static templatedConfig:any = {}; static watch:boolean = false; static storage:any = {}; static checkArguments(options, settings, task, tasks, done?) { var args = Array.prototype.slice.call(arguments); checkArguments.apply(this, args); } static config(task, tasks, userOptions) { throw new Error('no gulp config defined'); } static gulp(options, settings, task, tasks, done?):void { throw new Error('no gulp task defined'); } static clone(name:any, callback:any):void { var cloneRunner = _.cloneDeep(BaseTask); cloneRunner.taskName = name; cloneRunner.gulp = callback; return cloneRunner; } } } export = Base;