import {Container} from 'inversify'; import { IGulp, ToolParameters, ToolConfiguration, GlobalConfiguration } from 'urbanjs-tools-core'; export const TYPE_TOOL_SERVICE = 'TYPE_TOOL_SERVICE'; export const TYPE_CONFIG_TOOL_PREFIX = 'TYPE_CONFIG_TOOL_PREFIX'; export const TYPE_DRIVER_REQUIRE = 'TYPE_DRIVER_REQUIRE'; export const TYPE_FACTORY_TOOL_CONTAINER = 'TYPE_FACTORY_TOOL_CONTAINER'; export const TYPE_API = 'TYPE_API'; export interface IRequireDriver { require(name: string): T; } export type ToolContainerFactory = () => Container; export interface IRegistrableGulpTool { register(gulp: IGulp, taskName: string, parameters: ToolConfiguration): void; } export interface IToolService { getTool(toolName: string): IRegistrableGulpTool; } export type PresetConfig = (string | string[])[] | boolean | Function; export interface IApi { initialize(gulp: IGulp, config: { [key: string]: PresetConfig | ToolConfiguration }): void; initializePreset(gulp: IGulp, presetName: string, config: PresetConfig): void; initializePresets(gulp: IGulp, configsByPresetName: { [key: string]: PresetConfig }): void; initializeTask(gulp: IGulp, toolName: string, parameters: ToolConfiguration): void; initializeTasks(gulp: IGulp, parametersByToolName: { [key: string]: ToolConfiguration }): void; getTool(toolName): IRegistrableGulpTool; setGlobalConfiguration(configuration: ToolConfiguration); getGlobalConfiguration(): GlobalConfiguration; setupInMemoryTranspile(): void; }