import { BaseGenerator } from "./base"; import { TargetLanguage, GeneratedFile, ValidationResult, GeneratorConfig, EntityGenerationOptions, ControllerGenerationOptions, ServiceGenerationOptions, DtoGenerationOptions, MigrationGenerationOptions, Entity, AuthConfig } from "../types"; /** * TypeScript/NestJS generator that wraps the existing generation functions. * This generator produces TypeORM entities, NestJS controllers, services, and DTOs. */ export declare class TypeScriptGenerator extends BaseGenerator { constructor(config: GeneratorConfig); getLanguage(): TargetLanguage; getFileExtension(): string; validateConfig(config: GeneratorConfig): ValidationResult; generateEntity(options: EntityGenerationOptions): Promise; generateController(options: ControllerGenerationOptions): Promise; generateService(options: ServiceGenerationOptions): Promise; generateDto(options: DtoGenerationOptions): Promise; generateModule(options: EntityGenerationOptions): Promise; generateMigration(_options: MigrationGenerationOptions): Promise; generateEnums(entities: Entity[], apiType: string): Promise; generateIndexModule(entities: Entity[], apiType: string, _opts?: { emitEvents?: boolean; }): Promise; generateGuards(entities: Entity[], auth?: AuthConfig): Promise; /** * Emits a schema-derived manifest of the entities that have opted in to * domain-event emission (`.apsorc` `emitEvents`). * * Under the Apso Distribution Model the domain-event engine no longer ships * as generated code; it lives in the `@apso/domain-events` library and is * wired by the `domain-events` skill. The CLI's only responsibility is to * declare WHICH entities participate, via a single generated file: * `events/event-emitting.entities.ts`. * * Returns an empty array when no entity is opted in, so callers can skip * wiring entirely. * * @param entities All entities from the configuration * @param _apiType API type (unused; events are REST/Graphql agnostic) * @param opts.emitEvents Top-level (global) default for emitEvents */ generateDomainEvents(entities: Entity[], _apiType?: string, opts?: { emitEvents?: boolean; }): Promise; /** * Normalizes auth config by applying defaults for DB session providers */ private normalizeAuthConfig; }