import { PickWith, PickWithOpt } from '../../../../shared/typescript-utils';
import { VideoFileModel } from '../../../models/video/video-file';
import { MVideo, MVideoUUID } from './video';
import { MVideoRedundancy, MVideoRedundancyFileUrl } from './video-redundancy';
import { MStreamingPlaylist, MStreamingPlaylistVideo } from './video-streaming-playlist';
declare type Use<K extends keyof VideoFileModel, M> = PickWith<VideoFileModel, K, M>;
export declare type MVideoFile = Omit<VideoFileModel, 'Video' | 'RedundancyVideos' | 'VideoStreamingPlaylist'>;
export declare type MVideoFileVideo = MVideoFile & Use<'Video', MVideo>;
export declare type MVideoFileStreamingPlaylist = MVideoFile & Use<'VideoStreamingPlaylist', MStreamingPlaylist>;
export declare type MVideoFileStreamingPlaylistVideo = MVideoFile & Use<'VideoStreamingPlaylist', MStreamingPlaylistVideo>;
export declare type MVideoFileVideoUUID = MVideoFile & Use<'Video', MVideoUUID>;
export declare type MVideoFileRedundanciesAll = MVideoFile & PickWithOpt<VideoFileModel, 'RedundancyVideos', MVideoRedundancy[]>;
export declare type MVideoFileRedundanciesOpt = MVideoFile & PickWithOpt<VideoFileModel, 'RedundancyVideos', MVideoRedundancyFileUrl[]>;
export declare function isStreamingPlaylistFile(file: any): file is MVideoFileStreamingPlaylist;
export declare function isWebtorrentFile(file: any): file is MVideoFileVideo;
export {};
//# sourceMappingURL=video-file.d.ts.map