import type { CropOptions as NCropOptions, CompressImageOptions as NCompressImageOptions, ThumbnailOptions as NThumbnailOptions, FlipOptions as NFlipOptions, RotateOptions as NRotateOptions, ProcessImageOptions as NProcessImageOptions, SplitImageOptions, TrimOptions, TrimAndCropOptions, VideoCropOptions, CompressVideoOptions, ThumbnailResult, SpeedOptions, ExtractAudioOptions, GeneratePreviewOptions, ProcessVideoOptions, MediaResult, MediaMetadata, LocationData } from './MediaToolkit.nitro'; export type { SplitImageOptions, TrimOptions, TrimAndCropOptions, VideoCropOptions, CompressVideoOptions, ThumbnailResult, SpeedOptions, ExtractAudioOptions, GeneratePreviewOptions, ProcessVideoOptions, MediaResult, MediaMetadata, LocationData, }; export type CropOptions = Omit & { cornerRadius?: number | string; }; export type CompressImageOptions = Omit & { cornerRadius?: number | string; }; export type ThumbnailOptions = Omit & { cornerRadius?: number | string; }; export type FlipOptions = Omit & { cornerRadius?: number | string; }; export type RotateOptions = Omit & { cornerRadius?: number | string; }; export type ProcessImageOptions = Omit & { cornerRadius?: number | string; }; export interface ProgressEvent { /** Operation id (uri of the source file) */ id: string; /** 0–100 */ progress: number; } export declare const MediaToolkit: { /** * Crop an image by a relative region (x, y, width, height all in 0.0–1.0). */ cropImage: (uri: string, opts: CropOptions) => Promise; /** * Compress (resize + quality reduce) an image. */ compressImage: (uri: string, opts: CompressImageOptions) => Promise; /** * Split an image into a rows x columns grid without resizing the source pixels. */ splitImage: (uri: string, options: SplitImageOptions) => Promise; /** * Flip an image horizontally or vertically. */ flipImage: (uri: string, opts: FlipOptions) => Promise; /** * Rotate an image by 90, 180, or 270 degrees. */ rotateImage: (uri: string, opts: RotateOptions) => Promise; /** * Crop a video by a relative region — re-encodes the frames. */ cropVideo: (uri: string, options: VideoCropOptions) => Promise; /** * Trim a video to [startTime, endTime] in milliseconds. */ trimVideo: (uri: string, options: TrimOptions) => Promise; /** * Compress (re-encode) a video to lower bitrate / resolution. */ compressVideo: (uri: string, options: CompressVideoOptions) => Promise; /** * Trim AND crop in a single encode pass — faster than running both separately. * Provide [startTime, endTime] ms plus crop region (x, y, width, height in 0–1). */ trimAndCropVideo: (uri: string, options: TrimAndCropOptions) => Promise; /** * Extract a single video frame as a JPEG thumbnail. * @param uri Source video URI * @param options timeMs, quality (0–100), maxWidth, outputPath */ getThumbnail: (uri: string, opts?: ThumbnailOptions) => Promise; /** * Flip a video horizontally or vertically. */ flipVideo: (uri: string, options: NFlipOptions) => Promise; /** * Rotate a video by 90, 180, or 270 degrees. */ rotateVideo: (uri: string, options: NRotateOptions) => Promise; /** * Run multiple transformations (trim, crop, flip, rotate) on a video in a single pass. */ processVideo: (uri: string, options: ProcessVideoOptions) => Promise; /** * Run multiple transformations (crop, flip, rotate) on an image. */ processImage: (uri: string, opts: ProcessImageOptions) => Promise; /** * Change video playback speed (e.g. 0.5x, 2.0x). */ changeVideoSpeed: (uri: string, options: SpeedOptions) => Promise; /** * Extract audio track from a video file. */ extractAudio: (uri: string, options: ExtractAudioOptions) => Promise; /** * Generate an animated GIF preview from the video. */ generateVideoPreview: (uri: string, options: GeneratePreviewOptions) => Promise; /** * Concatenate multiple local video clips into a single file using AVFoundation * passthrough (iOS) / Media3 passthrough Transformer (Android). No re-encode — * frame-accurate, near-instant joining of compatible clips. Resolves with the * sum of input durations in seconds. */ concatVideos: (clipPaths: string[], outputPath: string) => Promise; /** * Get unified metadata (EXIF for images, Track metadata for videos) * Super fast, no memory bloat. */ getMediaMetadata: (uri: string) => Promise; }; export default MediaToolkit; //# sourceMappingURL=index.d.ts.map