import { Resource, SpaceResource } from '@opencloud-eu/web-client'; /** * Handles the embedded video of a Google Motion Photo. * * A Motion Photo is a still JPEG with a short MP4 clip appended to the end of * the file. The `motionPhoto` facet exposes `videoSize` (the byte length of * that appended clip), which lets us fetch just the video with a single HTTP * Range request instead of downloading the whole file: `Range: bytes=-` * where `offset = size - videoSize`. * * The composable owns the blob lifecycle: it memoizes the object URL per * resource id (so hover + click don't double-fetch) and revokes every URL it * created when the owning scope is disposed. */ export declare function useMotionPhoto(): { isMotionPhoto: (resource: Resource) => boolean; canPlay: (resource: Resource) => boolean; getVideoOffset: (resource: Resource) => number | null; getStillTimestampSeconds: (resource: Resource) => number | null; loadVideoUrl: (space: SpaceResource, resource: Resource, signal?: AbortSignal) => Promise; revoke: (resourceId: string) => void; revokeAll: () => void; };