/** * SmartyMeet Dev03 API REST * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * * The version of the OpenAPI document: 1.0.1 * Contact: developer@smartymeet.com * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import type { FilePreviewMetaSchemaPreviewUrls } from './FilePreviewMetaSchemaPreviewUrls'; /** * Shape of FileResource.meta after the file service's preview * pipeline runs. Two categories: * * - Caller-stamped (set by upload-time clients, stable): * questionId, fileKey - written by `file:process` when the * assessment workflow invokes it; lets the recruiter UI map * a FileResource back to the answer's question without * consulting attempt.attributes.answers[]. * * - Render-time (regenerated on every showFile call, transient): * previewUrls.{pages,mediaUrl,streamingUrl,originalUrl,thumbnailUrl} - * presigned S3 URLs for the bytes the FE renders. Expire * after `previewUrlsExpiresAt` (~15 min). `streamingUrl` is * the ffmpeg re-muxed (faststart mp4 / genpts webm) variant * for browser playback; populated only when the re-mux pass * has completed. * * - Provenance markers (set by writers, never expire): * durationSource ('client' | 'remux') - 'client' when the * FE-supplied wall-clock durationMs is the only reliable * source (browser-recorded webm pre-remux); 'remux' once * the ffmpeg re-mux pass has overwritten attributes.durationSeconds * with a probed value. FE branches on this for the streaming * URL fallback (and also drives whether `streamingUrl` is set). * * - Heavy content reference: * resultRef - presigned URL to the file service's extraction * JSON (full transcript, raw OCR, per-page text, structured * AI fields). FE fetches this only on demand. * * All keys optional; presence depends on file kind and * conversion progress. * @export * @interface FilePreviewMetaSchema */ export interface FilePreviewMetaSchema { /** * Schema version of this meta block. Currently 1. FE branches on this when shape evolves. * @type {number} * @memberof FilePreviewMetaSchema */ manifestVersion?: number; /** * Assessment question this file was uploaded for. Set by `file:process` from passThrough. * @type {string} * @memberof FilePreviewMetaSchema */ questionId?: string; /** * Original S3 key in the source bucket (attempt-bucket / submission-bucket / etc). Set by `file:process` from passThrough; useful for joining back to attempt.answers[].files[].fileKey. * @type {string} * @memberof FilePreviewMetaSchema */ fileKey?: string; /** * * @type {FilePreviewMetaSchemaPreviewUrls} * @memberof FilePreviewMetaSchema */ previewUrls?: FilePreviewMetaSchemaPreviewUrls; /** * When previewUrls expire. Refetch FileResource (showFile / showAttempt?include=files) to mint fresh URLs. * @type {Date} * @memberof FilePreviewMetaSchema */ previewUrlsExpiresAt?: Date; /** * Presigned URL to the full extraction JSON (transcript, OCR, per-page text, structured fields). Same TTL as previewUrls. FE fetches on demand only. * @type {string} * @memberof FilePreviewMetaSchema */ resultRef?: string | null; /** * Size of the result JSON in bytes. FE can use this to decide whether to fetch (skip if huge for low-bandwidth contexts). * @type {number} * @memberof FilePreviewMetaSchema */ resultRefBytes?: number | null; /** * Provenance of attributes.durationSeconds. 'client' = FE-supplied * wall-clock value (durationMs / 1000) - the only reliable source * for browser-recorded webm before the ffmpeg re-mux pass runs. * 'remux' = ffprobe value taken from the re-muxed streaming variant, * and signals that meta.previewUrls.streamingUrl is populated. * @type {FilePreviewMetaSchemaDurationSourceEnum} * @memberof FilePreviewMetaSchema */ durationSource?: FilePreviewMetaSchemaDurationSourceEnum | null; } /** * @export */ export declare const FilePreviewMetaSchemaDurationSourceEnum: { readonly Client: "client"; readonly Remux: "remux"; }; export type FilePreviewMetaSchemaDurationSourceEnum = typeof FilePreviewMetaSchemaDurationSourceEnum[keyof typeof FilePreviewMetaSchemaDurationSourceEnum]; /** * Check if a given object implements the FilePreviewMetaSchema interface. */ export declare function instanceOfFilePreviewMetaSchema(value: object): value is FilePreviewMetaSchema; export declare function FilePreviewMetaSchemaFromJSON(json: any): FilePreviewMetaSchema; export declare function FilePreviewMetaSchemaFromJSONTyped(json: any, ignoreDiscriminator: boolean): FilePreviewMetaSchema; export declare function FilePreviewMetaSchemaToJSON(json: any): FilePreviewMetaSchema; export declare function FilePreviewMetaSchemaToJSONTyped(value?: FilePreviewMetaSchema | null, ignoreDiscriminator?: boolean): any; //# sourceMappingURL=FilePreviewMetaSchema.d.ts.map