/** * synap upload * * Store a real file (arbitrary bytes) on the pod. Closes the "an AI/CLI cannot * store a real file" gap: the CLI reads the file from disk and POSTs it as * multipart/form-data to the standalone file door, which mints a `file` * entity for the bytes. * * Usage: * synap upload ./report.pdf * synap upload ./logo.png --title "Brand logo" --workspace * synap upload ./spec.pdf --attach # also link doc → entity * * API: * POST /api/hub/files (multipart) — field `file` (≤10MB) + REQUIRED * workspaceId (membership-gated) + * optional title → { fileEntityId, documentId } * POST /api/hub/relations — with --attach: `references` relation * from the target entity to the new doc. */ export interface UploadOpts { workspace?: string; attach?: string; title?: string; open?: boolean; json?: boolean; podUrl?: string; apiKey?: string; } export declare function uploadFile(path: string, opts: UploadOpts): Promise;