import type { DecoratorStructure, OptionalKind, PropertyDeclarationStructure, SourceFile } from "ts-morph"; import type { GeneratorConfig } from "../../../GeneratorConfig"; import type { Field, InputType, ObjectTypes } from "../../../types"; import { TypeEnum } from "../../../types"; import type { BaseParser } from "../BaseParser"; interface NestJSImportOptions { nestJSImports: string[]; sourceFile: SourceFile; } export declare class BaseFileGenerator { private readonly _baseParser; private readonly _config; private _inputTypes; private readonly _project; constructor(baseParser: BaseParser, config: GeneratorConfig); addDecoratorImports({ defaultImport, moduleSpecifier, namedImports, sourceFile, }: { defaultImport?: string; moduleSpecifier: string; namedImports: string[]; sourceFile: SourceFile; }): void; addEnumImports({ enums, sourceFile, type }: { enums: string[]; sourceFile: SourceFile; type: TypeEnum; }): void; addGraphqlScalarImports({ imports, sourceFile }: { imports: string[]; sourceFile: SourceFile; }): void; addInputTypeImports({ isResolver, model, sourceFile, types, }: { isResolver?: boolean; model?: string; sourceFile: SourceFile; types: string[]; }): void; addJsonImports({ sourceFile }: { sourceFile: SourceFile; }): void; addModelImports({ models, sourceFile, type }: { models: string[]; sourceFile: SourceFile; type: TypeEnum; }): void; addNestJSImports({ nestJSImports, sourceFile }: NestJSImportOptions): void; addOutputTypeImports({ isResolver, sourceFile, types, model, }: { isResolver?: boolean; model?: string; sourceFile: SourceFile; types: string[]; }): void; addValidationDecoratorImport(sourceFile: SourceFile): void; createSourceFile(name: string): SourceFile; getClassDecorator({ decoratorType, documentation, isAbstract, returnType, }: { decoratorType: ObjectTypes; documentation?: string; isAbstract?: boolean; returnType?: string; }): OptionalKind[]; getProperties({ decoratorType, fields, }: { decoratorType: TypeEnum; fields: Field[]; }): OptionalKind[] | undefined; hasNestedValidation(name: string): boolean; normalizeTsType(tsType: string): string; save(): Promise; setInputTypes(inputTypes: InputType[]): void; private _getPropertyDecorators; } export {};