import { MVideoPlaylistElementLight } from './video-playlist-element';
import { PickWith } from '../../../../shared/typescript-utils';
import { VideoPlaylistModel } from '../../../models/video/video-playlist';
import { MAccount, MAccountDefault, MAccountSummary, MAccountSummaryFormattable } from '../account';
import { MThumbnail } from './thumbnail';
import { MChannelDefault, MChannelSummary, MChannelSummaryFormattable, MChannelUrl } from './video-channels';
declare type Use<K extends keyof VideoPlaylistModel, M> = PickWith<VideoPlaylistModel, K, M>;
export declare type MVideoPlaylist = Omit<VideoPlaylistModel, 'OwnerAccount' | 'VideoChannel' | 'VideoPlaylistElements' | 'Thumbnail'>;
export declare type MVideoPlaylistId = Pick<MVideoPlaylist, 'id'>;
export declare type MVideoPlaylistSummary = Pick<MVideoPlaylist, 'id'> & Pick<MVideoPlaylist, 'name'> & Pick<MVideoPlaylist, 'uuid'>;
export declare type MVideoPlaylistPrivacy = Pick<MVideoPlaylist, 'privacy'>;
export declare type MVideoPlaylistUUID = Pick<MVideoPlaylist, 'uuid'>;
export declare type MVideoPlaylistVideosLength = MVideoPlaylist & {
    videosLength?: number;
};
export declare type MVideoPlaylistSummaryWithElements = MVideoPlaylistSummary & Use<'VideoPlaylistElements', MVideoPlaylistElementLight[]>;
export declare type MVideoPlaylistOwner = MVideoPlaylist & Use<'OwnerAccount', MAccount>;
export declare type MVideoPlaylistOwnerDefault = MVideoPlaylist & Use<'OwnerAccount', MAccountDefault>;
export declare type MVideoPlaylistThumbnail = MVideoPlaylist & Use<'Thumbnail', MThumbnail>;
export declare type MVideoPlaylistAccountThumbnail = MVideoPlaylist & Use<'OwnerAccount', MAccountDefault> & Use<'Thumbnail', MThumbnail>;
export declare type MVideoPlaylistAccountChannelDefault = MVideoPlaylist & Use<'OwnerAccount', MAccountDefault> & Use<'VideoChannel', MChannelDefault>;
export declare type MVideoPlaylistFull = MVideoPlaylistVideosLength & Use<'OwnerAccount', MAccountDefault> & Use<'VideoChannel', MChannelDefault> & Use<'Thumbnail', MThumbnail>;
export declare type MVideoPlaylistAccountChannelSummary = MVideoPlaylist & Use<'OwnerAccount', MAccountSummary> & Use<'VideoChannel', MChannelSummary>;
export declare type MVideoPlaylistFullSummary = MVideoPlaylistVideosLength & Use<'Thumbnail', MThumbnail> & Use<'OwnerAccount', MAccountSummary> & Use<'VideoChannel', MChannelSummary>;
export declare type MVideoPlaylistFormattable = MVideoPlaylistVideosLength & Use<'OwnerAccount', MAccountSummaryFormattable> & Use<'VideoChannel', MChannelSummaryFormattable>;
export declare type MVideoPlaylistAP = MVideoPlaylist & Use<'Thumbnail', MThumbnail> & Use<'VideoChannel', MChannelUrl>;
export {};
//# sourceMappingURL=video-playlist.d.ts.map