export interface IIdentifierStyleDTO { noTransformation ? : boolean ; keepUpperCase ? : boolean ; case : string ; prefix : string ; suffix : string ; } export interface IVariableConfigDTO { name : string ; defaultValue ? : string ; style ? : IIdentifierStyleDTO ; case ? : string ; prefixUnderscore ? : number ; suffixUnderscore ? : number ; } export interface ITemplateConfigDTO { name : string ; variables ? : ( IVariableConfigDTO | string ) [ ] ; encoding ? : string ; ignore ? : string [ ] ; allowExistingFolder ? : boolean ; } export interface IVariableValueDTO { name : string ; value : string | undefined ; } export interface IVariableDTO extends IVariableValueDTO { style : IIdentifierStyleDTO ; } export interface IUserInputRequestDTO { templateName : string ; variables : IVariableDTO [ ] ; destDir : { basePath : string ; relativePath : string ; } ; inputConfig : { confirmOnEnter : boolean ; cancelOnEscape : boolean ; } ; } export interface IUserInputResponseDTO { variables : IVariableDTO [ ] ; destDirAbsolutePath : string ; } export interface IVariable extends IVariableDTO { } export interface IVariableTable { get ( variableName ) : IVariable | undefined ; add ( variable ) : void ; delete ( variableName ) : void ; variables ( ) : IVariable [ ] ; batchAssign ( variableValues ) : void ; } export interface ITemplate { reset ( ) : void ; assignVariables ( variableValues ) : void ; id : string ; name : string ; encoding : string ; ignore : string [ ] ; allowExistingFolder : boolean ; rootPath : string ; variableTable : IVariableTable ; } export interface ITemplateTable { init ( ) : Promise < void > ; getById ( templateId ) : ITemplate | undefined ; getByName ( templateName ) : ITemplate | undefined ; add ( template ) : void ; deleteByName ( templateName ) : void ; deleteById ( templateId ) : void ; entries ( ) : ITemplate [ ] ; size ( ) : number ; }