import { Question } from 'inquirer'; type IAnswersBase = Record; interface IConfig { variables: IConfigVariables; domains: IConfigDomain[]; } interface IConfigDomain { name: string; templates: IConfigTemplate[]; structure?: any; questions?: Question[]; next?: IConfigNext; hidden?: boolean; } interface IConfigTemplate { name: string | ((answers: IAnswersBase, allAnswers?: IAnswersBase) => string); template: string | ((answers: IAnswersBase, allAnswers?: IAnswersBase) => string); when?: (answers: IAnswersBase, allAnswers?: IAnswersBase) => boolean; createEmpty?: boolean; } interface IConfigNext { name: string; when?: boolean | ((answers: IAnswersBase) => boolean); skipStructure?: boolean; } interface IConfigVariablesRequired { root: string; createEmpty?: boolean; runLinter?: boolean; } type IConfigVariables = IConfigVariablesRequired & Record; declare const getTypeValue: (type: string) => string | undefined; declare const isArrayType: (type: string) => boolean; declare const isPrimitiveType: (type: string) => boolean; declare const capitalize: (str: string) => string; interface CreatorConfig extends Omit { variables?: IConfigVariables; } export { capitalize, getTypeValue, isArrayType, isPrimitiveType }; export type { CreatorConfig };