import { Loader, Prompt, Variable } from './TemplateConfig'; import * as AwaitEventEmitterCore from 'await-event-emitter'; import { Asset } from '../core/Compiler'; export declare type State = { input: string; asset?: Asset; output?: string; loaders?: Loader; error?: Error; }; export declare type PromptProcess = (prompt: Prompt) => Promise | Variable; export interface Tree { [path: string]: State; } export declare class AwaitEventEmitter extends AwaitEventEmitterCore { listeners: (name?: string) => Function[]; emit: (name: string, ...any: any[]) => Promise; emitSync: (name: string, ...any: any[]) => boolean; on: (name: string, ...any: any[]) => AwaitEventEmitter; once: (name: string, ...any: any[]) => AwaitEventEmitter; prependListener: (name: string, listener: Function) => AwaitEventEmitter; prependOnceListener: (name: string, listener: Function) => AwaitEventEmitter; removeListener: (name: string, listener?: Function) => AwaitEventEmitter; off: (name: string, listener?: Function) => AwaitEventEmitter; } export interface Logger { silent: boolean; log: Function; deprecated: Function; success: Function; warn: Function; error: Function; stop?: () => void; start?: () => void; } export declare class TreeProcessor { tree: Tree; constructor(tree: Tree); toPrettyStates(): string; toJSON(): Tree; }