import { Document, Types } from "mongoose";
import mongoose from "mongoose";
export declare enum connectionType {
    NORMAL = "NORMAL",
    GROUP = "GROUP"
}
export type MessageDocument = Message & Document;
export declare class Message {
    connection_type: string;
    connection_id: Types.ObjectId;
    sent_by: Types.ObjectId;
    sent_to: Types.ObjectId;
    call_id: Types.ObjectId;
    reply_msg_id: Types.ObjectId;
    type: string;
    message_id: string;
    message_type: string;
    message: string;
    media_url: string;
    duration: Number;
    media: {
        type: string;
        url: string | null;
        thumbnail: string | null;
        caption: string | null;
        duration: number | null;
    }[];
    read_by: {
        user_id: string;
        read_at: number | null;
    }[];
    delivered_to: {
        user_id: string;
        delivered_at: number;
    }[];
    starred_by: Types.ObjectId[];
    call_data: any;
    deleted_for: Types.ObjectId[];
    chat_disappear_by: Array<{
        user_id: Types.ObjectId;
        is_already_disappeared: boolean;
        is_disappeared_msg: boolean;
        msg_disappearing_date: number;
    }>;
    msg_disappearing_date: number;
    is_disappeared_msg: boolean;
    is_already_disappeared: boolean;
    is_deleted: boolean;
    is_edited: boolean;
    message_status: string;
    lat: string;
    long: string;
    is_live_location_ended: boolean;
    live_end_at: number;
    read_at: number;
    chat_pinned_by: Array<{
        user_id: Types.ObjectId;
        pinned_for: string;
        pinned_to: number;
        pinned_at: number;
    }>;
    updated_at: number;
    created_at: number;
}
export declare const MessageSchema: mongoose.Schema<Message, mongoose.Model<Message, any, any, any, Document<unknown, any, Message, any> & Message & {
    _id: Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, Message, Document<unknown, {}, mongoose.FlatRecord<Message>, {}> & mongoose.FlatRecord<Message> & {
    _id: Types.ObjectId;
} & {
    __v: number;
}>;
