import { FunctionProperties, PickWith, PickWithOpt } from '../../../../shared/typescript-utils';
import { VideoChannelModel } from '../../../models/video/video-channel';
import { MAccountActor, MAccountAPI, MAccountDefault, MAccountFormattable, MAccountLight, MAccountSummaryBlocks, MAccountSummaryFormattable, MAccountUrl, MAccountUserId } from '../account';
import { MActor, MActorAccountChannelId, MActorAPChannel, MActorAPI, MActorDefault, MActorDefaultBanner, MActorDefaultLight, MActorFormattable, MActorHost, MActorLight, MActorSummary, MActorSummaryFormattable, MActorUrl } from '../actor';
import { MVideo } from './video';
declare type Use<K extends keyof VideoChannelModel, M> = PickWith<VideoChannelModel, K, M>;
export declare type MChannel = Omit<VideoChannelModel, 'Actor' | 'Account' | 'Videos' | 'VideoPlaylists'>;
export declare type MChannelId = Pick<MChannel, 'id'>;
export declare type MChannelIdActor = MChannelId & Use<'Actor', MActorAccountChannelId>;
export declare type MChannelUserId = Pick<MChannel, 'accountId'> & Use<'Account', MAccountUserId>;
export declare type MChannelActor = MChannel & Use<'Actor', MActor>;
export declare type MChannelUrl = Use<'Actor', MActorUrl>;
export declare type MChannelDefault = MChannel & Use<'Actor', MActorDefault>;
export declare type MChannelBannerDefault = MChannel & Use<'Actor', MActorDefaultBanner>;
export declare type MChannelActorLight = MChannel & Use<'Actor', MActorLight>;
export declare type MChannelAccountLight = MChannel & Use<'Actor', MActorDefaultLight> & Use<'Account', MAccountLight>;
export declare type MChannelHost = MChannelId & Use<'Actor', MActorHost>;
export declare type MChannelAccountActor = MChannel & Use<'Account', MAccountActor>;
export declare type MChannelBannerAccountDefault = MChannel & Use<'Actor', MActorDefaultBanner> & Use<'Account', MAccountDefault>;
export declare type MChannelAccountDefault = MChannel & Use<'Actor', MActorDefault> & Use<'Account', MAccountDefault>;
export declare type MChannelVideos = MChannel & Use<'Videos', MVideo[]>;
export declare type MChannelSummary = FunctionProperties<MChannel> & Pick<MChannel, 'id' | 'name' | 'description' | 'actorId'> & Use<'Actor', MActorSummary>;
export declare type MChannelSummaryAccount = MChannelSummary & Use<'Account', MAccountSummaryBlocks>;
export declare type MChannelAPI = MChannel & Use<'Actor', MActorAPI> & Use<'Account', MAccountAPI>;
export declare type MChannelSummaryFormattable = FunctionProperties<MChannel> & Pick<MChannel, 'id' | 'name'> & Use<'Actor', MActorSummaryFormattable>;
export declare type MChannelAccountSummaryFormattable = MChannelSummaryFormattable & Use<'Account', MAccountSummaryFormattable>;
export declare type MChannelFormattable = FunctionProperties<MChannel> & Pick<MChannel, 'id' | 'name' | 'description' | 'createdAt' | 'updatedAt' | 'support'> & Use<'Actor', MActorFormattable> & PickWithOpt<VideoChannelModel, 'Account', MAccountFormattable>;
export declare type MChannelAP = Pick<MChannel, 'name' | 'description' | 'support'> & Use<'Actor', MActorAPChannel> & Use<'Account', MAccountUrl>;
export {};
//# sourceMappingURL=video-channels.d.ts.map