import fastify from 'fastify'; import { MediaType } from './mediaType'; import { ServerContext } from './context'; import { FileID } from './fileID'; import { ImageMetadata } from './imageBackend'; export interface TemporaryFile { id: string; filename: string; path: string; } export declare function createTempFile(filename: string, context: ServerContext): TemporaryFile; export interface CommonUploadResponse extends CommonFileMetadata { id: string; } export interface ImageUploadResponse extends CommonUploadResponse, ImageFileMetadata { } export interface VideoUploadResponse extends CommonUploadResponse, VideoFileMetadata { } export interface AudioUploadResponse extends CommonUploadResponse, AudioFileMetadata { } export interface DocumentUploadResponse extends CommonUploadResponse, DocumentFileMetadata { } export interface OtherUploadResponse extends CommonUploadResponse, OtherFileMetadata { } export declare type UploadResponse = ImageUploadResponse | VideoUploadResponse | AudioUploadResponse | DocumentUploadResponse | OtherUploadResponse; export interface CommonFileMetadata { filename: string; fileSize: number; extension: string; mimeType: string; } export interface ImageFileMetadata extends CommonFileMetadata, ImageMetadata { type: MediaType.Image; } export interface VideoFileMetadata extends CommonFileMetadata { type: MediaType.Video; } export interface AudioFileMetadata extends CommonFileMetadata { type: MediaType.Audio; } export interface DocumentFileMetadata extends CommonFileMetadata { type: MediaType.Document; } export interface OtherFileMetadata extends CommonFileMetadata { type: MediaType.Other; } export declare type FileMetadata = ImageFileMetadata | VideoFileMetadata | AudioFileMetadata | DocumentFileMetadata | OtherFileMetadata; export declare function uploadMediaMiddleware(context: ServerContext): fastify.RequestHandler; export declare function uploadMedia(uploadFile: TemporaryFile, replaceID: FileID | null, context: ServerContext): Promise; export declare function getTemporaryFileMetadata(file: TemporaryFile, context: ServerContext): Promise; //# sourceMappingURL=upload.d.ts.map