import { UploadFiles } from 'express';
import { Transaction } from 'sequelize/types';
import { VideoModel } from '../models/video/video';
import { FilteredModelAttributes } from '../types';
import { MThumbnail, MUserId, MVideoFile, MVideoTag, MVideoThumbnail, MVideoUUID } from '../types/models';
import { ThumbnailType, VideoCreate, VideoTranscodingPayload } from '../../shared/models';
import { CreateJobOptions } from './job-queue/job-queue';
declare function buildLocalVideoFromReq(videoInfo: VideoCreate, channelId: number): FilteredModelAttributes<VideoModel>;
declare function buildVideoThumbnailsFromReq(options: {
    video: MVideoThumbnail;
    files: UploadFiles;
    fallback: (type: ThumbnailType) => Promise<MThumbnail>;
    automaticallyGenerated?: boolean;
}): Promise<MThumbnail[]>;
declare function setVideoTags(options: {
    video: MVideoTag;
    tags: string[];
    transaction?: Transaction;
}): Promise<void>;
declare function addOptimizeOrMergeAudioJob(video: MVideoUUID, videoFile: MVideoFile, user: MUserId): Promise<any>;
declare function addTranscodingJob(payload: VideoTranscodingPayload, options?: CreateJobOptions): Promise<any>;
declare function addMoveToObjectStorageJob(video: MVideoUUID, isNewVideo?: boolean): Promise<any>;
declare function getTranscodingJobPriority(user: MUserId): Promise<number>;
export { buildLocalVideoFromReq, buildVideoThumbnailsFromReq, setVideoTags, addOptimizeOrMergeAudioJob, addTranscodingJob, addMoveToObjectStorageJob, getTranscodingJobPriority };
//# sourceMappingURL=video.d.ts.map