import { AsyncSeriesHook, HookMap, SyncHook } from 'tapable'; import type { ActionType, NodePlopAPI, PromptQuestion } from 'node-plop'; import type { IDefaultProjectConfiguration } from './logic/TemplateConfiguration'; import type { IExtendedAnswers } from './plopfile'; import type { ITemplatePathNameType } from './logic/templateFolder'; export interface ITemplatesHook { templates: ITemplatePathNameType[]; } export interface IPromptsHookParams { /** * The queue of prompt question. and question will be prompt to use in sequence order */ promptQueue: PromptQuestion[]; } export interface IActionsHookParams { /** * A list of plop action. These actions will be registered into plop */ actions: ActionType[]; } type IAnswers = IExtendedAnswers; export type IResult = 'Succeeded' | 'Failed'; export interface IHooks { templates: AsyncSeriesHook; prompts: AsyncSeriesHook; actions: SyncHook; answers: AsyncSeriesHook; plop: SyncHook; promptQuestion: HookMap>; defaultProjectConfiguration: SyncHook<[IDefaultProjectConfiguration, IAnswers]>; done: AsyncSeriesHook<[IResult, IAnswers]>; } export declare const getHooks: () => IHooks; export {}; //# sourceMappingURL=hooks.d.ts.map