import { BaseEntity, EntityManager } from "typeorm";
import { NestAuthIdentity } from "./identity.entity";
import { NestAuthSession } from "../../session/entities/session.entity";
import { NestAuthOTP } from "../../auth/entities/otp.entity";
import { NestAuthMFASecret } from "../../auth/entities/mfa-secret.entity";
import { NestAuthUserAccess } from "./user-access.entity";
import { NestAuthPlatformAccess } from "./platform-access.entity";
export declare class NestAuthUser extends BaseEntity {
    id: string;
    email: string;
    emailVerifiedAt: Date;
    phone: string;
    phoneVerifiedAt: Date;
    passwordHash: string;
    isActive: boolean;
    metadata?: Record<string, any>;
    isMfaEnabled: boolean;
    mfaRecoveryCode?: string;
    identities: NestAuthIdentity[];
    mfaSecrets: NestAuthMFASecret[];
    sessions: NestAuthSession[];
    otps: NestAuthOTP[];
    userAccesses: NestAuthUserAccess[];
    platformAccess: NestAuthPlatformAccess;
    createdAt: Date;
    updatedAt: Date;
    updateTenantFields(): void;
    getUserAccess(tenantId?: string, createIfNotExists?: boolean, manager?: EntityManager): Promise<NestAuthUserAccess>;
    getPlatformAccess(createIfNotExists?: boolean, manager?: EntityManager): Promise<NestAuthPlatformAccess>;
    findOrCreateIdentity(provider: string, providerId: string, manager?: EntityManager): Promise<NestAuthIdentity>;
    updateOrCreateIdentity(provider: string, data: Partial<NestAuthIdentity>, manager?: EntityManager): Promise<NestAuthIdentity>;
    updateEmail(newEmail: string, manager?: EntityManager): Promise<void>;
    updatePhone(newPhone: string | null | undefined, manager?: EntityManager): Promise<void>;
    validatePassword(password: string): Promise<boolean>;
    setPassword(password: string): Promise<void>;
}
//# sourceMappingURL=user.entity.d.ts.map