import * as mongoose from "mongoose";
import { UserStatus } from "../enums/user-status.enum";
import { Role } from "../enums/roles.enum";
import { SessionLocation } from "../enums/session-location.enum";
import { UserType } from "../enums/user-types.enum";
export declare const UserSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
    timestamps: true;
    toJSON: {
        virtuals: true;
    };
    toObject: {
        virtuals: true;
    };
}, {
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    status: UserStatus;
    first_name: string;
    last_name: string;
    email: string;
    password: string;
    isAdmin: boolean;
    balance: number;
    tenantId: string;
    hasShippingAddress: boolean;
    role: Role;
    membership: "basic" | "premium" | "gold";
    rate: number;
    session_location: SessionLocation;
    userType: UserType;
    phone?: string;
    picture?: string;
    refreshToken?: string;
    billingAddress?: mongoose.Types.ObjectId;
    shippingAddress?: mongoose.Types.ObjectId;
    parentId?: string;
}, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    status: UserStatus;
    first_name: string;
    last_name: string;
    email: string;
    password: string;
    isAdmin: boolean;
    balance: number;
    tenantId: string;
    hasShippingAddress: boolean;
    role: Role;
    membership: "basic" | "premium" | "gold";
    rate: number;
    session_location: SessionLocation;
    userType: UserType;
    phone?: string;
    picture?: string;
    refreshToken?: string;
    billingAddress?: mongoose.Types.ObjectId;
    shippingAddress?: mongoose.Types.ObjectId;
    parentId?: string;
}>> & mongoose.FlatRecord<{
    createdAt: NativeDate;
    updatedAt: NativeDate;
} & {
    status: UserStatus;
    first_name: string;
    last_name: string;
    email: string;
    password: string;
    isAdmin: boolean;
    balance: number;
    tenantId: string;
    hasShippingAddress: boolean;
    role: Role;
    membership: "basic" | "premium" | "gold";
    rate: number;
    session_location: SessionLocation;
    userType: UserType;
    phone?: string;
    picture?: string;
    refreshToken?: string;
    billingAddress?: mongoose.Types.ObjectId;
    shippingAddress?: mongoose.Types.ObjectId;
    parentId?: string;
}> & {
    _id: mongoose.Types.ObjectId;
} & {
    __v: number;
}>;
