/** * Streams CSV rows from disk. Spike-day event logs exceed V8's ~512 MB string limit, so the * whole-file parser in timeline/loadCaptures.ts cannot be used here. The state machine carries * across read chunks, including a quote that ends one chunk. */ export declare function readCsvCells(path: string, opts?: { chunkSize?: number; }): AsyncGenerator; export declare function readCsvRecords(path: string, opts?: { chunkSize?: number; }): AsyncGenerator>; export declare function csvLine(cells: readonly string[]): string; export interface FilterResult { totalRows: number; guestRows: number; guestRowsByUser: Record; malformed: number; } /** A log whose header lacks columns the analysis needs. Thrown before any row is written. */ export declare class MissingColumnsError extends Error { readonly missing: string[]; constructor(missing: string[]); } /** * Copies the rows whose USER_ID or USER_ID_DERIVED belongs to a guest user; counts every row. * A UTF-8 BOM is stripped from the header. `requiredColumns`, when given, returns the columns * the header lacks; any at all fails the file closed with MissingColumnsError. */ export declare function filterLogFile(rawPath: string, outPath: string, guestIds: ReadonlySet, opts?: { requiredColumns?: (header: string[]) => string[]; }): Promise; //# sourceMappingURL=csv.d.ts.map