/// /// import { Writable } from 'stream'; import type { MongoServerError, Document, WriteError, WriteConcernError, BulkWriteResult } from 'mongodb'; import type { DataService } from 'mongodb-data-service'; export type CollectionStreamProgressError = Error | WriteError | WriteConcernError; type CollectionStreamError = Error & { cause?: CollectionStreamProgressError; }; type WriteCollectionStreamProgressError = Error & { index: number; code: MongoServerError['code']; op: MongoServerError['op']; errInfo: MongoServerError['errInfo']; }; declare const numKeys: readonly ["insertedCount", "matchedCount", "modifiedCount", "deletedCount", "upsertedCount", "ok"]; type NumericBulkWriteResult = { [numkey in keyof BulkWriteResult & typeof numKeys[number]]?: number; }; export type CollectionStreamProgress = { docsWritten: number; docsProcessed: number; errors: CollectionStreamProgressError[]; }; export type CollectionStreamStats = Required & { writeErrors: WriteCollectionStreamProgressError[]; writeConcernErrors: WriteCollectionStreamProgressError[]; }; export declare class WritableCollectionStream extends Writable { dataService: Pick; ns: string; BATCH_SIZE: number; docsWritten: number; docsProcessed: number; stopOnErrors: boolean; batch: Document[]; _batchCounter: number; _stats: CollectionStreamStats; _errors: CollectionStreamProgressError[]; constructor(dataService: Pick, ns: string, stopOnErrors: boolean); _write(document: Document, _encoding: BufferEncoding, next: (err?: Error) => void): Promise | undefined; _final(callback: (err?: Error) => void): void; _executeBatch(callback: (err?: Error) => void): Promise; _makeStreamError(): CollectionStreamError | undefined; _mergeBulkOpResult(result?: NumericBulkWriteResult & Partial): void; getErrors(): CollectionStreamProgressError[]; getStats(): CollectionStreamStats; printJobStats(): void; } export declare const createCollectionWriteStream: (dataService: Pick, ns: string, stopOnErrors: boolean) => WritableCollectionStream; export {}; //# sourceMappingURL=collection-stream.d.ts.map