import { HydratedDocument, Types } from 'mongoose';
export declare enum CallMode {
    AUDIO = "AUDIO",
    VIDEO = "VIDEO"
}
export declare enum CallType {
    ONE_TO_ONE = "ONE_TO_ONE",
    GROUP = "GROUP"
}
export declare enum CallingStatus {
    ACCEPT = "ACCEPT",
    DECLINE = "DECLINE",
    NOT_ANSWERE = "NOT_ANSWERE",
    END = "END",
    PENDING = "PENDING"
}
export declare class Calling {
    call_mode: CallMode;
    call_type: CallType;
    status: CallingStatus;
    call_by: Types.ObjectId;
    call_to: Types.ObjectId;
    connection_id: Types.ObjectId;
    agora_token: string;
    channel_name: string;
    start_time: number;
    end_time: number;
    duration_in_ms: number;
    total_duration_in_ms: number;
    is_deleted: boolean;
    deleted_at: number;
}
export type CallingDocument = HydratedDocument<Calling>;
export declare const CallingSchema: import("mongoose").Schema<Calling, import("mongoose").Model<Calling, any, any, any, import("mongoose").Document<unknown, any, Calling, any> & Calling & {
    _id: Types.ObjectId;
} & {
    __v: number;
}, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Calling, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<Calling>, {}> & import("mongoose").FlatRecord<Calling> & {
    _id: Types.ObjectId;
} & {
    __v: number;
}>;
