import { CustomConfig } from './interfaces/custom-config-interface.js'; import { INDE_TYPES, TS_TYPES, PROP_ACCESSIBILTY } from './various.js'; export declare class ClassGenerator { private arProperties; private suppliedName; private params; private arImports; private arPrimaryKeys; /** * Logica del nome classe: se nel nome fornito son presenti maiuscole isolate, si ipotizza camelcase, e quindi tutto resta invariato, tranne la prima lettera che viene messa in maiuscolo * Se non sono presenti maiuscole isolate, il nome viene messo tutto in minuscolo, tranne la prima lettera, che resta in maiuscolo * PIPPO => Pippo * pippo => Pippo * PIPPOPLUTO => Pippopluto * pippopluto => Pippopluto * pippoPluto => PippoPluto * */ get className(): string; setKeys(keys: string[]): void; /** * Logica per il nome file: il nome viene sempre messo in minuscolo, ma se viene rilevato camelcase, le parole vengono spezzate con dei trattini * viene aggiunto .model.ts alla fine * PIPPO => pippo.model.ts * pippo => pippo.model.ts * PIPPOPLUTO => pippopluto.model.ts * pippopluto => pippopluto.model.ts * pippoPluto => pippo-pluto.model.ts */ get fileName(): string; private isUppercase; private getInitValueForType; constructor(name: string, config: CustomConfig); addPrimaryKey(name: string, type: TS_TYPES, required?: boolean, privateField?: PROP_ACCESSIBILTY): ClassGenerator; addProperty(name: string, type: TS_TYPES | string, required?: boolean, accessibility?: PROP_ACCESSIBILTY, isPrimary?: boolean): ClassGenerator; /** * Aggiunge un elemento all'elenco di importazioni (se l'elemento è già stato aggiunto, viene ignorato) * @param tokenName * @param path */ addImport(tokenName: string, path: string): void; /** * Restituisce il contenuto del file finito sotto forma di stringa * @returns */ getFileContentString(): string; private getInheritance; private getPropertiesString; private getImportsString; private getConstructor; private getInitMethod; private getKeyDescriptorMethod; private getInitAllMethod; private getAccessorMethods; private getFactoryMethod; private getClassNameMethod; private getRemoteNameMehtod; /** * Salva la classe nel percorso specificato * @param path * @returns */ saveOnFileSystem(path: string): Promise; /** * converte il tipo proveniente da inde in tipo typescript (se il tipo non è standard, si suppone sia un enum) * @param indeType tipo proveniente da inde * @returns */ static convertToTsType(indeType: INDE_TYPES | string): { finalType: TS_TYPES | string; isEnum: boolean; }; }