import { Account } from '../actors';
import { VideoChannel } from '../videos/channel/video-channel.model';
import { UserRole } from './user-role';
import { NSFWPolicyType } from '../videos/nsfw-policy.type';
import { UserNotificationSetting } from './user-notification-setting.model';
import { UserAdminFlag } from './user-flag.model';
import { VideoPlaylistType } from '../videos/playlist/video-playlist-type.model';
export interface User {
    id: number;
    username: string;
    email: string;
    pendingEmail: string | null;
    emailVerified: boolean;
    nsfwPolicy: NSFWPolicyType;
    adminFlags?: UserAdminFlag;
    autoPlayVideo: boolean;
    autoPlayNextVideo: boolean;
    autoPlayNextVideoPlaylist: boolean;
    webTorrentEnabled: boolean;
    p2pEnabled: boolean;
    videosHistoryEnabled: boolean;
    videoLanguages: string[];
    role: UserRole;
    roleLabel: string;
    videoQuota: number;
    videoQuotaDaily: number;
    videoQuotaUsed?: number;
    videoQuotaUsedDaily?: number;
    videosCount?: number;
    abusesCount?: number;
    abusesAcceptedCount?: number;
    abusesCreatedCount?: number;
    videoCommentsCount?: number;
    theme: string;
    account: Account;
    notificationSettings?: UserNotificationSetting;
    videoChannels?: VideoChannel[];
    blocked: boolean;
    blockedReason?: string;
    noInstanceConfigWarningModal: boolean;
    noWelcomeModal: boolean;
    noAccountSetupWarningModal: boolean;
    createdAt: Date;
    pluginAuth: string | null;
    lastLoginDate: Date | null;
}
export interface MyUserSpecialPlaylist {
    id: number;
    name: string;
    type: VideoPlaylistType;
}
export interface MyUser extends User {
    specialPlaylists: MyUserSpecialPlaylist[];
}
//# sourceMappingURL=user.model.d.ts.map