/** * 把单个值序列化为 CSV 字段字符串。 * 返回的字符串可直接拼接(已含 quote)。 */ export declare function quoteField(value: unknown): string; /** * 把一行记录转成 CSV 行(不含末尾换行符)。 * columns 决定列序;row 中缺失列输出空字符串。v5.0.0 起大小写不敏感。 */ export declare function rowToCsv(row: Record, columns: string[]): string; /** * 拼 SELECT SQL (v4.0.9: 移除 LIMIT/OFFSET — 兼容 Oracle/DM 等不支持的标准 SQL 方言) * * - columns=['*'] 直接用 *,否则逐个 quoteIdent 拼出 "col1","col2",... * - table 接受 "schema.table" 或 "table",前者 schema 与 name 都 quote * - where / orderBy 是字符串 SQL 片段(trusted path,只在白名单内用) * 含 ';' 视为注入,拒绝 * - 不再 emit LIMIT/OFFSET — 需要分页请用 exportTableCsv 的 sql 参数自带 */ export declare function buildSelectSql(opts: { table: string; columns: string[]; where?: string; orderBy?: string; }): string; /** * 流式导出单表 (或自定义 SQL) 到 CSV 文件 (v4.0.9 重构) * * 两种模式 (二选一,不能同时给): * 1. table 模式: 给 table [+ columns + where + orderBy] → 全表导出 * - 拼 SELECT cols FROM "schema"."table" [WHERE ...] [ORDER BY ...] * - **不** 加 LIMIT/OFFSET (跨 DB 方言兼容) * 2. sql 模式: 给 sql → 原样执行 (用于 Oracle/DM 等特殊语法或带分页的查询) * - 去掉末尾分号,其他保持不变 * * 单次查询,无内部分页循环 — 大表请用 sql 模式自带 WHERE ROWNUM <= N 等方言分页。 */ export declare function exportTableCsv(opts: { adapter: { executeQuery(sql: string, params?: unknown[]): Promise<{ rows: unknown[]; executionTime?: number; }>; }; table?: string; columns?: string[]; where?: string; orderBy?: string; sql?: string; outputPath: string; }): Promise<{ totalRows: number; bytesWritten: number; durationMs: number; batches: number; }>; //# sourceMappingURL=csv-writer.d.ts.map