import { IEvent, StepFunctionsContext } from '@mbc-cqrs-serverless/core'; import { CreateCsvImportDto } from '../dto/create-csv-import.dto'; import { ICsvRowImport } from '../dto/csv-import-row.interface'; /** * Per-batch metrics emitted by each csv_rows_handler Map iteration. * `totalRows` is the row count in this batch; each row is either counted in * `succeededRows` (including skipped-equal rows) or `failedRows`. */ export interface CsvBatchProcessingSummary { totalRows: number; succeededRows: number; failedRows: number; } /** Map state output merged via `resultPath: '$.processingResults'`. */ export interface CsvFinalizeParentJobMapOutput { readonly processingResults?: readonly CsvBatchProcessingSummary[]; } export declare class CsvImportSfnEvent implements IEvent { source: string; context: StepFunctionsContext; input: CreateCsvImportDto | ICsvRowImport | CsvFinalizeParentJobInput; constructor(event?: Partial); } export interface SfnResultWriterDetails { Bucket: string; Key: string; } export interface SfnErrorOutput { Error: string; Cause: string; } export interface CsvFinalizeParentJobInput { sourceId: string; mapOutput?: { MapRunArn: string; ResultWriterDetails?: SfnResultWriterDetails; }; processingResults?: CsvBatchProcessingSummary[]; errorOutput?: SfnErrorOutput; }