import { BaseEntity } from "./base.entity";
import { RefreshToken } from "./refresh-token.entity";
import { SenseloafLog } from "./senseloaf-log.entity";
import { Otp } from "./otp.entity";
import { FreelancerProfile } from "./freelancer-profile.entity";
import { CompanyProfile } from "./company-profile.entity";
import { Job } from "./job.entity";
import { Interview } from "./interview.entity";
import { BankDetail } from "./bank-details.entity";
import { SystemPreference } from "./system-preference.entity";
import { Rating } from "./rating.entity";
import { JobApplication } from "./job-application.entity";
import { FreelancerExperience } from "./freelancer-experience.entity";
import { FreelancerEducation } from "./freelancer-education.entity";
import { FreelancerProject } from "./freelancer-project.entity";
import { FreelancerCaseStudy } from "./freelancer-casestudy.entity";
import { FreelancerSkill } from "./freelancer-skill.entity";
import { FreelancerTool } from "./freelancer-tool.entity";
import { FreelancerFramework } from "./freelancer-framework.entity";
import { FreelancerAssessment } from "./freelancer-assessment.entity";
import { FreelancerDeclaration } from "./freelancer-declaration.entity";
import { CompanyMemberRole } from "./company-members-roles.entity";
import { CompanyMember } from "./company-member.entity";
import { AssessmentAnswer } from "./assessment-answer.entity";
import { CompanySkill } from "./company-skill.entity";
import { AdminUserRole } from "./admin-user-role.entity";
import { FreelancerResume } from "./freelancer-resume.entity";
import { AiInterview } from "./ai-interview.entity";
import { F2FInterview } from "./f2f-interview.entity";
import { F2fInterviewRescheduleRequest } from "./f2f-interview-reschedule-request.entity";
import { Contract } from "./contract.entity";
import { Timesheet } from "./timesheets.entity";
import { TimesheetLine } from "./timesheet-line.entity";
import { Signature } from "./signature.entity";
import { ClientCandidatePreference } from "./client-candidate-preference.entity";
import { Invoice } from "./invoice.entity";
import { Dispute } from "./dispute.entity";
import { StripeTransaction } from "./stripe-transaction.entity";
import { Wallet } from "./wallet.entity";
import { EscrowWallet } from "./escrow-wallet.entity";
import { AssessmetQuestion } from "./assessment-question.entity";
import { Hiring } from "./hiring.entity";
import { FreelancerAssessmentRequest } from "./freelancer-assessment-request.entity";
import { AiInterviewRescheduleRequest } from "./ai-interview-reschedule-request.entity";
import { ContractSummary } from "./contract-summary.entity";
import { InAppNotification } from "./in-app-notification.entity";
import { Task } from "./task.entity";
import { TaskQuery } from "./task-query.entity";
import { TaskQueryMessage } from "./task-query-message.entity";
import { UserSubscription } from "./user-subscription.entity";
import { EkycVerificationSession } from "./ekyc-verification-session.entity";
import { EkycVerificationLog } from "./ekyc-verification-log.entity";
import { WalletTransaction } from "./wallet-transaction.entity";
export declare enum AccountType {
    SUPER_ADMIN = "SUPER_ADMIN",
    ADMIN = "ADMIN",
    SUB_ADMIN = "SUB_ADMIN",
    CLIENT = "CLIENT",
    FREELANCER = "FREELANCER",
    CLIENT_EMPLOYEE = "CLIENT_EMPLOYEE"
}
export declare enum AccountStatus {
    INACTIVE = "INACTIVE",
    ACTIVE = "ACTIVE",
    SUSPENDED = "SUSPENDED",
    BLOCKED = "BLOCKED"
}
export declare enum Provider {
    LINKEDIN = "LINKEDIN",
    GOOGLE = "GOOGLE",
    GITLABS = "GITLABS"
}
export declare class User extends BaseEntity {
    uniqueId: string;
    parentId: number;
    parent: User;
    children: User[];
    username: string;
    firstName: string;
    lastName: string;
    dateOfBirth: Date;
    gender: string;
    profilePictureUrl: string;
    presignedProfilePictureUrl: string;
    presignedProfilePictureUrlExpiresAt: Date;
    email: string;
    mobileCode: string;
    mobile: string;
    password: string;
    accountType: AccountType;
    accountStatus: AccountStatus;
    isEmailVerified: boolean;
    isMobileVerified: boolean;
    isSocial: boolean;
    isReferralUser: boolean;
    isEkycVerified: boolean;
    ekycVerifiedAt: Date | null;
    lastLoginAt: Date;
    lastLoginIp: string;
    resetToken: string | null;
    resetTokenExpireAt: Date | null;
    setPasswordToken: string | null;
    refreshTokens: RefreshToken[];
    provider: Provider;
    providerToken: string;
    linkedInId: string;
    googleId: string;
    gitLabsId: string;
    onBoardedBy: string;
    ip: string;
    otps: Otp[];
    senseloafLogs: SenseloafLog[];
    companyProfile: CompanyProfile;
    companySkills: CompanySkill[];
    companyMemberRoles: CompanyMemberRole[];
    companyMember: CompanyMember;
    companyAiInterview: AiInterview[];
    clientF2FInterviews: F2FInterview[];
    freelancerProfile: FreelancerProfile;
    freelancerResume: FreelancerResume;
    freelancerAssessmentRequests: FreelancerAssessmentRequest[];
    assessmentRequests: FreelancerAssessmentRequest[];
    assessments: FreelancerAssessment[];
    assessmentAnswers: AssessmentAnswer[];
    freelancerSkills: FreelancerSkill[];
    freelancerExperience: FreelancerExperience[];
    freelancerEducation: FreelancerEducation[];
    freelancerProject: FreelancerProject[];
    freelancerCaseStudy: FreelancerCaseStudy[];
    freelancerTool: FreelancerTool[];
    freelancerFramework: FreelancerFramework[];
    freelancerDeclaration: FreelancerDeclaration;
    freelancerMcq: AssessmetQuestion[];
    freelancerAiInterview: AiInterview[];
    freelancerF2FInterviews: F2FInterview[];
    freelancerF2FInterviewRescheduleRequests: F2fInterviewRescheduleRequest[];
    freelancerAiInterviewRescheduleRequests: AiInterviewRescheduleRequest[];
    clientAiInterviewRescheduleRequests: AiInterviewRescheduleRequest[];
    jobs: Job[];
    clientTasks: Task[];
    freelancerTasks: Task[];
    raisedTaskQueries: TaskQuery[];
    assignedTaskQueries: TaskQuery[];
    taskQueryMessages: TaskQueryMessage[];
    jobApplications: JobApplication[];
    interviews: Interview[];
    bankDetail: BankDetail[];
    systemPreference: SystemPreference[];
    givenRatings: Rating[];
    receivedRatings: Rating[];
    adminUserRoles: AdminUserRole[];
    clientContractSummaries: ContractSummary[];
    clientContracts: Contract[];
    clientHirings: Hiring[];
    clientEscrowWallets: EscrowWallet[];
    freelancerContractSummaries: ContractSummary[];
    freelancerContracts: Contract[];
    freelancerHirings: Hiring[];
    freelancerEscrowWallets: EscrowWallet[];
    signatures: Signature;
    clientTimesheets: Timesheet[];
    freelancerTimesheets: Timesheet[];
    clientTimesheetLine: TimesheetLine[];
    clientInvoice: Invoice[];
    freelancerTimesheetLine: TimesheetLine[];
    freelancerInvoice: Invoice[];
    clientPreferencesGiven: ClientCandidatePreference[];
    clientPreferencesReceived: ClientCandidatePreference[];
    initiatedDisputes: Dispute[];
    respondentDisputes: Dispute[];
    wallet: Wallet;
    stripeTransactions: StripeTransaction[];
    clientDisputes: Dispute[];
    freelancerDisputes: Dispute[];
    inAppNotifications: InAppNotification[];
    userSubscriptions: UserSubscription[];
    ekycVerificationSessions: EkycVerificationSession[];
    ekycVerificationLogs: EkycVerificationLog[];
    sentTransactions: WalletTransaction[];
}
