export type MediaSupportFileVisibility = 'visible' | 'hidden-retained' | 'drop-after-extract'; export interface MediaBundleFileDescriptor { path: string; relativePath?: string; name?: string; mimeType?: string; sizeBytes?: number; sha256?: string; modifiedAt?: Date | string; metadata?: Record; } export interface MediaBundleGpsTrackPoint { tSeconds: number; recordedAt?: Date | string | null; latitude: number; longitude: number; altitude?: number | null; heading?: number | null; speedMps?: number | null; sourceFilePath?: string; } export interface MediaBundleNormalizedMetadata { captureTime?: Date | string | null; width?: number; height?: number; durationMs?: number; mimeType?: string; gpsTrack?: MediaBundleGpsTrackPoint[]; raw?: Record; private?: Record; [key: string]: unknown; } export interface MediaBundleSupportFileInspection { file: MediaBundleFileDescriptor; role: string; relationship: string; visibility?: MediaSupportFileVisibility; metadata?: MediaBundleNormalizedMetadata; } export interface MediaBundleInspection { handlerId: string; handlerVersion: string; formatFamily: string; primary: MediaBundleFileDescriptor; supportFiles: MediaBundleSupportFileInspection[]; metadata: MediaBundleNormalizedMetadata; capabilities: string[]; warnings: string[]; errors: string[]; raw?: Record; } export type MediaBundleInspectionLike = MediaBundleInspection; export interface PersistMediaBundleAssetInput { file: MediaBundleFileDescriptor; role: 'primary' | 'support'; typeSlug?: string; parentAssetId?: string | null; relationship?: string; visibility?: MediaSupportFileVisibility; metadata: MediaBundleNormalizedMetadata; inspection: MediaBundleInspection; } export interface PersistMediaBundleAssociationInput { primaryAssetId: string; supportAssetId: string; relationship: string; visibility: MediaSupportFileVisibility; metadata?: MediaBundleNormalizedMetadata; } export interface PersistMediaBundleMetadataArtifactInput { primaryAssetId: string; inspection: MediaBundleInspection; } export interface SmrtMediaBundlePersistenceAdapter { upsertAsset(input: PersistMediaBundleAssetInput): Promise<{ id: string; }>; associateSupportFile?(input: PersistMediaBundleAssociationInput): Promise; writeMetadataArtifact?(input: PersistMediaBundleMetadataArtifactInput): Promise<{ id: string; } | null | undefined>; replaceGpsTrack?(primaryAssetId: string, points: MediaBundleGpsTrackPoint[]): Promise; } export interface PersistMediaBundleInspectionOptions { primaryTypeSlug?: string; supportTypeSlug?: string; supportVisibility?: MediaSupportFileVisibility; writeGpsTrack?: boolean; writeMetadataArtifact?: boolean; } export interface PersistMediaBundleInspectionResult { primaryAssetId: string; supportAssetIds: string[]; metadataArtifactId?: string; gpsTrackPointCount: number; warnings: string[]; } export declare function persistMediaBundleInspection(adapter: SmrtMediaBundlePersistenceAdapter, inspection: MediaBundleInspection, options?: PersistMediaBundleInspectionOptions): Promise; //# sourceMappingURL=media-bundle-persistence.d.ts.map