import { Document, HydratedDocument, Schema as MongooseSchema } from 'mongoose';
export type UsersDocument = HydratedDocument<Users>;
export declare enum UserType {
    SUPER_ADMIN = "SUPER_ADMIN",
    POLICY_STAFF = "POLICY_STAFF",
    ADMIN_STAFF = "ADMIN_STAFF",
    AGENT = "AGENT"
}
export declare const STAFF_ROLES: UserType[];
export declare const PANEL_ROLES: UserType[];
export declare enum AgentStatus {
    INVITED = "INVITED",
    ACCEPTED = "ACCEPTED",
    SUBMITTED = "SUBMITTED",
    APPROVED = "APPROVED",
    REJECTED = "REJECTED"
}
export declare enum AgentDocumentType {
    PAN = "PAN",
    AADHAAR = "AADHAAR",
    ADDRESS_PROOF = "ADDRESS_PROOF",
    LICENSE_CERTIFICATE = "LICENSE_CERTIFICATE"
}
export declare enum AgentDocumentStatus {
    PENDING = "PENDING",
    APPROVED = "APPROVED",
    REJECTED = "REJECTED"
}
export declare enum AgentDocumentRequestStatus {
    NO_REQUEST = "NO_REQUEST",
    PENDING = "PENDING",
    APPROVED = "APPROVED",
    REJECTED = "REJECTED"
}
export declare enum Language {
    EN = "en",
    HI = "hi"
}
export declare class Users extends Document {
    phone_no: string;
    country_code: string;
    is_phone_verified: boolean;
    email: string;
    temp_email: string;
    temp_phone: string;
    temp_phone_country_code: string;
    contact_change_otp_expires_at: number;
    username: string;
    password: string;
    is_email_verified: boolean;
    is_active: boolean;
    agent_no: number;
    agent_code: string;
    agent_status: AgentStatus;
    region_id: any;
    category_ids: any[];
    invited_by: any;
    invited_at: number;
    accepted_at: number;
    address: string;
    pan_number: string;
    irdai_number: string;
    training_hours: number;
    kyc_documents: any[];
    bank_details: {
        account_holder_name: string;
        account_number: string;
        ifsc_code: string;
    } | null;
    kyc_submitted_at: number;
    kyc_reviewed_by: any;
    kyc_reviewed_at: number;
    kyc_reject_reason: string;
    password_reset_token: string;
    password_reset_expires_at: number;
    invitation_token: string;
    invitation_token_expires_at: number;
    profile_pic: string;
    name: string;
    socket_id: string;
    is_online: boolean;
    user_type: UserType;
    document_edit_request: AgentDocumentRequestStatus;
    created_at: number;
    updated_at: number;
    language: Language;
    is_profile_complete: boolean;
    is_deleted: boolean;
}
export declare const UserSchema: MongooseSchema<Users, import("mongoose").Model<Users, any, any, any, Document<unknown, any, Users, any> & Users & Required<{
    _id: unknown;
}> & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Users, Document<unknown, {}, import("mongoose").FlatRecord<Users>, {}> & import("mongoose").FlatRecord<Users> & Required<{
    _id: unknown;
}> & {
    __v: number;
}>;
