import { BaseEntity } from "typeorm";
import { NestAuthTenant } from "../../tenant/entities/tenant.entity";
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 { NestAuthRole } from "../../role/entities/role.entity";
export declare class NestAuthUser extends BaseEntity {
    id: string;
    email: string;
    emailVerifiedAt: Date;
    phone: string;
    phoneVerifiedAt: Date;
    passwordHash: string;
    isVerified: boolean;
    isActive: boolean;
    metadata?: Record<string, any>;
    tenantId?: string;
    isMfaEnabled: boolean;
    mfaRecoveryCode?: string;
    tenant: NestAuthTenant;
    identities: NestAuthIdentity[];
    mfaSecrets: NestAuthMFASecret[];
    sessions: NestAuthSession[];
    otps: NestAuthOTP[];
    roles: NestAuthRole[];
    emailTenant: string;
    phoneTenant: string;
    createdAt: Date;
    updatedAt: Date;
    updateTenantFields(): void;
    getPermissions(): Promise<string[]>;
    getRoles(): Promise<NestAuthRole[]>;
    assignRoles(roles: string | string[], guard: string): Promise<void>;
    findOrCreateIdentity(provider: string, providerId: string): Promise<NestAuthIdentity>;
    updateOrCreateIdentity(provider: string, data: Partial<NestAuthIdentity>): Promise<NestAuthIdentity>;
    validatePassword(password: string): Promise<boolean>;
    setPassword(password: string): Promise<void>;
}
//# sourceMappingURL=user.entity.d.ts.map