import type inquirer from 'inquirer'; import type { ProjectMetaData } from './userDialog/PerformUserDialog'; import type { Command } from 'commander'; import type { OverrideProperties } from '../types/UtilityTypes'; import type PromptUI from 'inquirer/lib/ui/prompt'; export declare enum ExtensionCategory { ONLY_FOR_TESTING = 0, JAVASCRIPT_FLAVOR = 1, FRONTEND_FRAMEWORK = 2, CSS_PREPROCESSOR = 3, JAVASCRIPT_LIBRARY = 4, LINTER_OR_FORMATTER = 5 } export declare type AdditionalInformationForExtensions = { projectMetadata: ProjectMetaData; chosenExtensions: Array; }; export declare type Extension = { name: string; index: number; description: string; linkToDocumentation: URL; category: ExtensionCategory; dependsOn?: Array; exclusiveTo?: Array; promptOptions?: (prompt: (questions: Array) => Promise & { ui: PromptUI; }, cliOptions: Record) => Promise>; declareCliOptions?: (program: Command) => void; options?: Record; canBeSkipped?: (options: Record | undefined, otherInformation: AdditionalInformationForExtensions) => boolean; run: (options: Record | undefined, otherInformation: AdditionalInformationForExtensions) => Promise; printUsefulInformation?: (options: Record | undefined, otherInformation: AdditionalInformationForExtensions) => void; }; export declare type ExtensionWithSpecificOptions> = OverrideProperties; //# sourceMappingURL=Extension.d.ts.map