import { BaseModel } from './base.model';
import { Class_ } from './class_.model';
import { Training } from './training.model';
import { Purchase } from '../..';
export declare class User extends BaseModel {
    username: string;
    email: string;
    firstname: string;
    lastname: string;
    facebook_token: string;
    class_id: number;
    class_: Class_;
    updated_at: string;
    created_at: string;
    type: 'registered' | 'moderator' | 'admin';
    points: number;
    premium: boolean;
    level: number;
    daily: number;
    daily_points: number;
    daily_achievements: number;
    settings: {
        sound: boolean;
    };
    stripe_id: string;
    card_brand: string;
    card_last_four: string;
    trial_ends_at: string;
    purchases: Purchase[];
    /**
     * Fillable contains password field, because this field can be http edited, even if
     * user model does not contain this field for security reasons.
     */
    fillable: string[];
    static empty(): User;
    static profilePicture(): string;
    constructor(json: any);
    getUsername(): string;
    isPremium(): boolean;
    isLogged(): boolean;
    isMute(): boolean;
    hasPremiumAccess(): boolean;
    hasTrainingAccess(training: Training): boolean;
    hasModeratorAccess(): boolean;
    hasAdminAccess(): boolean;
    hasClass(): boolean;
    setClass(class_: Class_): void;
}
