+import { Transaction } from 'sequelize/types'
+import { Redis } from './redis'
+import { Emailer } from './emailer'
+import { MAccountDefault, MActorDefault, MChannelActor } from '../typings/models'
+import { MUser, MUserDefault, MUserId } from '../typings/models/user'
+
+type ChannelNames = { name: string, displayName: string }
+
+async function createUserAccountAndChannelAndPlaylist (parameters: {
+ userToCreate: MUser,
+ userDisplayName?: string,
+ channelNames?: ChannelNames,
+ validateUser?: boolean
+}): Promise<{ user: MUserDefault, account: MAccountDefault, videoChannel: MChannelActor }> {
+ const { userToCreate, userDisplayName, channelNames, validateUser = true } = parameters