import { PickWith, PickWithOpt } from '../../../../shared/typescript-utils';
import { VideoStreamingPlaylistModel } from '../../../models/video/video-streaming-playlist';
import { MVideo } from './video';
import { MVideoFile } from './video-file';
import { MVideoRedundancy, MVideoRedundancyFileUrl } from './video-redundancy';
declare type Use<K extends keyof VideoStreamingPlaylistModel, M> = PickWith<VideoStreamingPlaylistModel, K, M>;
export declare type MStreamingPlaylist = Omit<VideoStreamingPlaylistModel, 'Video' | 'RedundancyVideos' | 'VideoFiles'>;
export declare type MStreamingPlaylistFiles = MStreamingPlaylist & Use<'VideoFiles', MVideoFile[]>;
export declare type MStreamingPlaylistVideo = MStreamingPlaylist & Use<'Video', MVideo>;
export declare type MStreamingPlaylistFilesVideo = MStreamingPlaylist & Use<'VideoFiles', MVideoFile[]> & Use<'Video', MVideo>;
export declare type MStreamingPlaylistRedundanciesAll = MStreamingPlaylist & Use<'VideoFiles', MVideoFile[]> & Use<'RedundancyVideos', MVideoRedundancy[]>;
export declare type MStreamingPlaylistRedundancies = MStreamingPlaylist & Use<'VideoFiles', MVideoFile[]> & Use<'RedundancyVideos', MVideoRedundancyFileUrl[]>;
export declare type MStreamingPlaylistRedundanciesOpt = MStreamingPlaylist & Use<'VideoFiles', MVideoFile[]> & PickWithOpt<VideoStreamingPlaylistModel, 'RedundancyVideos', MVideoRedundancyFileUrl[]>;
export declare function isStreamingPlaylist(value: MVideo | MStreamingPlaylistVideo): value is MStreamingPlaylistVideo;
export {};
//# sourceMappingURL=video-streaming-playlist.d.ts.map