import { Document, Schema as MongooseSchema, Types } from 'mongoose';
export declare enum LeadStage {
    NEW = "NEW",
    IN_DISCUSSION = "IN_DISCUSSION",
    QUOTATION_SHARED = "QUOTATION_SHARED",
    CONVERTED = "CONVERTED",
    LOST = "LOST"
}
export declare const OPEN_STAGES: LeadStage[];
export declare enum LeadHistoryType {
    EVENT = "EVENT",
    NOTE = "NOTE",
    CALL = "CALL"
}
export declare class Lead extends Document {
    customer_name: string;
    phone_no: string;
    country_code: string;
    email: string;
    customer_id: Types.ObjectId;
    category_id: Types.ObjectId;
    assigned_to: Types.ObjectId;
    stage: LeadStage;
    estimated_premium: number;
    notes: string;
    lost_reason: string;
    last_call_at: number;
    next_follow_up_at: number;
    converted_at: number;
    policy_id: Types.ObjectId;
    created_by: Types.ObjectId;
    history: {
        type: string;
        action: string;
        text: string;
        meta: any;
        actor_id: any;
        actor_name: string;
        created_at: number;
    }[];
}
export declare const LeadSchema: MongooseSchema<Lead, import("mongoose").Model<Lead, any, any, any, Document<unknown, any, Lead, any> & Lead & Required<{
    _id: unknown;
}> & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Lead, Document<unknown, {}, import("mongoose").FlatRecord<Lead>, {}> & import("mongoose").FlatRecord<Lead> & Required<{
    _id: unknown;
}> & {
    __v: number;
}>;
