type BuildMultipartInput = { /** * JSON-serialisable payload. Goes into the multipart `data` part as a * plain JSON-stringified field (see the function-level doc for why it's * a string, not a `Blob`). The helper does not inspect the contents — * callers are responsible for the wire shape (see `buildCuringRequestData` * for the curing case). */ data: unknown; /** * Optional file to attach as the multipart `file` part. Omitted from the * `FormData` when null/undefined — the BE accepts data-only submissions * for some flows (e.g. curing's explanation-only correction). */ file?: File | null; }; /** * Build a `FormData` body for a multipart POST. Always appends a `data` * part (JSON-serialised, as a plain string — *not* a Blob, otherwise * FormData stamps it with a default `filename="blob"` in its * Content-Disposition header and the BE's multipart parser (Busboy) * routes it to `files.data` instead of `fields.data`. The `fields.data` * lookup then returns undefined and the BE responds with 400 * "Multipart form is missing the required `data` field"). Appends a * `file` part only when one is supplied. Curing-agnostic — the * curing-shape mapping lives in * `widgets/TaxbitCuringDocumentation/buildCuringRequestData.ts`. */ export declare const buildMultipart: ({ data, file, }: BuildMultipartInput) => FormData; export {};