/** * Standalone blob → server upload for clip recordings. Shared * between the SDK-driven recorder (VideoClipRecorder, for both * video + audio kinds) and the customer-driven upload path * (ProctoringClient.uploadVideoClip). Same HTTP shape, same * headers, same retry semantics -- extracted so both paths stay * in lockstep without duplicate logic. */ export interface UploadClipArgs { /** * Discriminator: routes to /video-clips/sessions/... or * /audio-clips/sessions/... and picks the default MIME type * when the blob doesn't carry one. */ kind?: "video" | "audio"; sessionId: string; ingestUrl: string; appId: string | undefined; /** * Per-device fingerprint stamped by the SDK; sent as * `x-fingerprint-id` so the server can attribute the clip * to the device that recorded it. Optional for callers * built before phase 7. */ fingerprintId?: string; clipNumber: number; blob: Blob; durationMs: number; } import type { ClipDropCode } from "./clip-error-codes.js"; export type UploadClipResult = { kind: "uploaded"; clipNumber: number; byteSize: number; durationMs: number; } | { kind: "dropped"; clipNumber: number; /** Stable code for the drop. */ code: ClipDropCode; /** Human-readable detail (the network error message, or the code). */ reason: string; }; export declare function uploadClip(args: UploadClipArgs): Promise; /** * Backwards-compatible alias retained for any external callers * that imported `uploadVideoClip` directly. New code should use * `uploadClip` and pass `kind` explicitly. * * @deprecated use `uploadClip` with `kind: "video"`. */ export declare const uploadVideoClip: (args: Omit) => Promise; //# sourceMappingURL=upload-clip.d.ts.map