///
import * as mongoose from 'mongoose';
import { Job } from './job';
import { Car } from './car';
import { Gender } from '../enums/genders';
import { Role } from '../enums/role';
import { Ref, Typegoose, ModelType, InstanceType } from '../../typegoose';
export interface FindOrCreateResult {
created: boolean;
doc: InstanceType;
}
export declare class User extends Typegoose {
firstName: string;
lastName: string;
fullName: string;
nick?: string;
uniqueId?: string;
username?: string;
expireAt?: Date;
age?: number;
gender: Gender;
role: Role;
job?: Job;
car?: Ref;
languages: string[];
previousJobs?: Job[];
previousCars?: Ref[];
static findByAge(this: ModelType & typeof User, age: number): mongoose.DocumentQuery, InstanceType>;
incrementAge(this: InstanceType): Promise>;
addLanguage(this: InstanceType): Promise>;
addJob(this: InstanceType, job?: Partial): Promise>;
static findOrCreate: (condition: any) => Promise>;
}
export declare const model: mongoose.Model> & User & typeof User;