/**
 * Reduce an entry name to a contained, single-segment file name. Defense-in-depth: the run id is
 * already brand-validated (no "/", "\\", ".." — see keiko-contracts ids.ts) before it reaches this
 * helper, but the ZIP writer must not depend on its caller for containment. Strips any directory
 * component, collapses traversal dot-runs, and rejects an empty result.
 */
export declare function safeZipEntryName(name: string): string;
/**
 * Assembles a deterministic STORE (no-compression) ZIP from the given entries.
 * DOS date/time fields are zeroed for byte-stable output across runs. Entry names are reduced to a
 * contained basename so a bundle can never write outside its own archive root.
 */
export declare function assembleZipBundle(entries: readonly {
    readonly name: string;
    readonly bytes: Uint8Array;
}[]): Uint8Array;
/**
 * Assembles a deterministic, multi-page, text-only PDF from the given plain-text body. The entire
 * body is rendered across as many pages as needed (no truncation). Byte-stable across identical runs.
 */
export declare function assemblePdf(body: string, runId: string): Uint8Array;
//# sourceMappingURL=exportAssembly.d.ts.map