export type ArchiveSource = { kind: 'memory'; files: Array<{ name: string; text: string; }>; } | { kind: 'disk'; files: Array<{ name: string; path: string; }>; }; export interface ArchiveFile { path: string; /** Bytes of the gzipped file. */ gzSize: number; /** Bytes of the container JSON before gzip, the unit the server's shrink rule uses. */ size: number; } /** * Write the container `{ v: 1, tool, mtime, files: [{ name, text }] }` gzipped * to a temp file, redacted the way redactContainer redacts the inline archive: * a .jsonl file line by line through redactJsonLine, which also reaches a * secret inside a JSON-escaped string, and any other file as one text. A JSONL * file streams, because each record and each secret in it is on one line. */ export declare function writeArchiveFile(source: ArchiveSource, meta: { tool: string; mtime: number; }, redact: (line: string) => string, dir?: string): Promise; export type UploadOutcome = 'stored' | 'unchanged' | 'shrink-protected' | 'unsupported'; /** * Upload `file` as the raw archive of `sessionId`. 'unsupported' means the * server has no object storage, which the caller treats as "keep the inline * behaviour". Any other failure throws. */ export declare function uploadArchiveFile(base: string, token: string | undefined, args: { sessionId: string; tool: string; mtime: number; projectId?: string; projectPath?: string; file: ArchiveFile; }): Promise; //# sourceMappingURL=raw-archive-parts.d.ts.map