import { ChatService } from './chat.service';
import { chatHistory, ConnectionDto, CreateConnection, CreateGroupDto, GroupOperationsDto, MuteNotificationType, RequestDto, SendMessageFromPushDto } from './dto/chat.dto';
import { ChatGateway } from './chat.gateway';
export declare class ChatController {
    private readonly chatService;
    private readonly chatGateway;
    constructor(chatService: ChatService, chatGateway: ChatGateway);
    createConnectionFromProfile(req: RequestDto, body: CreateConnection): Promise<{
        count: any;
        data: any;
    }>;
    createGroup(req: RequestDto, body: CreateGroupDto): Promise<{
        message: string;
        data: (import("mongoose").Document<unknown, {}, import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        }, {}> & import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        } & Required<{
            _id: import("mongoose").Types.ObjectId;
        }>) | null;
    }>;
    groupDetails(req: RequestDto, _id: string): Promise<{
        data: {
            memers: (import("mongoose").Document<unknown, {}, import("./schema/group.members.schema").GroupMembers, {}> & import("./schema/group.members.schema").GroupMembers & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            })[];
            _id?: import("mongoose").Types.ObjectId | undefined;
            $assertPopulated?: (<Paths = {}>(path: string | string[], values?: Partial<Paths> | undefined) => Omit<import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }, keyof Paths> & Paths) | undefined;
            $clearModifiedPaths?: (() => import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }) | undefined;
            $clone?: (() => import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }) | undefined;
            $createModifiedPathsSnapshot?: (() => import("mongoose").ModifiedPathsSnapshot) | undefined;
            $getAllSubdocs?: (() => import("mongoose").Document[]) | undefined;
            $ignore?: ((path: string) => void) | undefined;
            $isDefault?: ((path: string) => boolean) | undefined;
            $isDeleted?: ((val?: boolean) => boolean) | undefined;
            $getPopulatedDocs?: (() => import("mongoose").Document[]) | undefined;
            $inc?: ((path: string | string[], val?: number) => import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }) | undefined;
            $isEmpty?: ((path: string) => boolean) | undefined;
            $isValid?: ((path: string) => boolean) | undefined;
            $locals?: import("mongoose").FlattenMaps<Record<string, unknown>> | undefined;
            $markValid?: ((path: string) => void) | undefined;
            $model?: {
                <ModelType = import("mongoose").Model<unknown, {}, {}, {}, import("mongoose").Document<unknown, {}, unknown, {}> & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }, any>>(name: string): ModelType;
                <ModelType = import("mongoose").Model<import("./schema/connections.schema").Connection, {}, {}, {}, import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }, any>>(): ModelType;
            } | undefined;
            $op?: "save" | "validate" | "remove" | null | undefined;
            $restoreModifiedPathsSnapshot?: ((snapshot: import("mongoose").ModifiedPathsSnapshot) => import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }) | undefined;
            $session?: ((session?: import("mongoose").ClientSession | null) => import("mongoose").ClientSession | null) | undefined;
            $set?: {
                (path: string | Record<string, any>, val: any, type: any, options?: import("mongoose").DocumentSetOptions): import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                };
                (path: string | Record<string, any>, val: any, options?: import("mongoose").DocumentSetOptions): import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                };
                (value: string | Record<string, any>): import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                };
            } | undefined;
            $where?: import("mongoose").FlattenMaps<Record<string, unknown>> | undefined;
            baseModelName?: string;
            collection?: import("mongoose").Collection<import("bson").Document> | undefined;
            db?: import("mongoose").FlattenMaps<import("mongoose").Connection> | undefined;
            deleteOne?: ((options?: import("mongoose").QueryOptions) => import("mongoose").Query<import("mongodb").DeleteResult, import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }, {}, import("./schema/connections.schema").Connection, "deleteOne", Record<string, never>>) | undefined;
            depopulate?: (<Paths = {}>(path?: string | string[]) => import("mongoose").MergeType<import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }, Paths>) | undefined;
            directModifiedPaths?: (() => Array<string>) | undefined;
            equals?: ((doc: import("mongoose").Document<unknown, any, any, Record<string, any>>) => boolean) | undefined;
            errors?: import("mongoose").Error.ValidationError;
            get?: {
                <T extends keyof import("./schema/connections.schema").Connection>(path: T, type?: any, options?: any): import("./schema/connections.schema").Connection[T];
                (path: string, type?: any, options?: any): any;
            } | undefined;
            getChanges?: (() => import("mongoose").UpdateQuery<import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }>) | undefined;
            id?: any;
            increment?: (() => import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }) | undefined;
            init?: ((obj: import("mongoose").AnyObject, opts?: import("mongoose").AnyObject) => import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }) | undefined;
            invalidate?: {
                <T extends keyof import("./schema/connections.schema").Connection>(path: T, errorMsg: string | NativeError, value?: any, kind?: string): NativeError | null;
                (path: string, errorMsg: string | NativeError, value?: any, kind?: string): NativeError | null;
            } | undefined;
            isDirectModified?: {
                <T extends keyof import("./schema/connections.schema").Connection>(path: T | T[]): boolean;
                (path: string | Array<string>): boolean;
            } | undefined;
            isDirectSelected?: {
                <T extends keyof import("./schema/connections.schema").Connection>(path: T): boolean;
                (path: string): boolean;
            } | undefined;
            isInit?: {
                <T extends keyof import("./schema/connections.schema").Connection>(path: T): boolean;
                (path: string): boolean;
            } | undefined;
            isModified?: {
                <T extends keyof import("./schema/connections.schema").Connection>(path?: T | T[] | undefined, options?: {
                    ignoreAtomics?: boolean;
                } | null): boolean;
                (path?: string | Array<string>, options?: {
                    ignoreAtomics?: boolean;
                } | null): boolean;
            } | undefined;
            isNew?: boolean | undefined;
            isSelected?: {
                <T extends keyof import("./schema/connections.schema").Connection>(path: T): boolean;
                (path: string): boolean;
            } | undefined;
            markModified?: {
                <T extends keyof import("./schema/connections.schema").Connection>(path: T, scope?: any): void;
                (path: string, scope?: any): void;
            } | undefined;
            model?: {
                <ModelType = import("mongoose").Model<unknown, {}, {}, {}, import("mongoose").Document<unknown, {}, unknown, {}> & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }, any>>(name: string): ModelType;
                <ModelType = import("mongoose").Model<import("./schema/connections.schema").Connection, {}, {}, {}, import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }, any>>(): ModelType;
            } | undefined;
            modifiedPaths?: ((options?: {
                includeChildren?: boolean;
            }) => Array<string>) | undefined;
            overwrite?: ((obj: import("mongoose").AnyObject) => import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }) | undefined;
            $parent?: (() => import("mongoose").Document | undefined) | undefined;
            populate?: {
                <Paths = {}>(path: string | import("mongoose").PopulateOptions | (string | import("mongoose").PopulateOptions)[]): Promise<import("mongoose").MergeType<import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }, Paths>>;
                <Paths = {}>(path: string, select?: string | import("mongoose").AnyObject, model?: import("mongoose").Model<any>, match?: import("mongoose").AnyObject, options?: import("mongoose").PopulateOptions): Promise<import("mongoose").MergeType<import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }, Paths>>;
            } | undefined;
            populated?: ((path: string) => any) | undefined;
            replaceOne?: ((replacement?: import("mongoose").AnyObject, options?: import("mongoose").QueryOptions | null) => import("mongoose").Query<any, import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }, {}, unknown, "find", Record<string, never>>) | undefined;
            save?: ((options?: import("mongoose").SaveOptions) => Promise<import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }>) | undefined;
            schema?: import("mongoose").FlattenMaps<import("mongoose").Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, {
                [x: string]: unknown;
            }, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<{
                [x: string]: unknown;
            }>, {}> & import("mongoose").FlatRecord<{
                [x: string]: unknown;
            }> & Required<{
                _id: unknown;
            }> & {
                __v: number;
            }>> | undefined;
            set?: {
                <T extends keyof import("./schema/connections.schema").Connection>(path: T, val: import("./schema/connections.schema").Connection[T], type: any, options?: import("mongoose").DocumentSetOptions): import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                };
                (path: string | Record<string, any>, val: any, type: any, options?: import("mongoose").DocumentSetOptions): import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                };
                (path: string | Record<string, any>, val: any, options?: import("mongoose").DocumentSetOptions): import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                };
                (value: string | Record<string, any>): import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                };
            } | undefined;
            toJSON?: {
                (options: import("mongoose").ToObjectOptions & {
                    virtuals: true;
                }): import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                };
                (options?: import("mongoose").ToObjectOptions & {
                    flattenMaps?: true;
                    flattenObjectIds?: false;
                }): import("mongoose").FlattenMaps<import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }>;
                (options: import("mongoose").ToObjectOptions & {
                    flattenObjectIds: false;
                }): import("mongoose").FlattenMaps<import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }>;
                (options: import("mongoose").ToObjectOptions & {
                    flattenObjectIds: true;
                }): {
                    sent_by: string;
                    sent_to: string;
                    group_name: string;
                    group_creator_id: string;
                    group_image_url: string;
                    connection_type: string;
                    connection_locked_by: string[];
                    connection_pinned_by: string[];
                    connection_deleted_by: string[];
                    connection_archived_by: string[];
                    chat_disappear_by: {
                        user_id: string;
                        chat_disappearing: import("./schema/connections.schema").chatDisappearing;
                        chat_disapear_for: string;
                    }[];
                    chat_disappearing: string;
                    connection_muted_by: {
                        user_id: string;
                        time: number;
                        type: "HOUR" | "WEEK" | "ALWAYS" | null;
                    }[];
                    updated_at: number;
                    created_at: number;
                    _id: string;
                    __v: number;
                };
                (options: import("mongoose").ToObjectOptions & {
                    flattenMaps: false;
                }): import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                };
                (options: import("mongoose").ToObjectOptions & {
                    flattenMaps: false;
                    flattenObjectIds: true;
                }): {
                    sent_by: string;
                    sent_to: string;
                    group_name: string;
                    group_creator_id: string;
                    group_image_url: string;
                    connection_type: string;
                    connection_locked_by: string[];
                    connection_pinned_by: string[];
                    connection_deleted_by: string[];
                    connection_archived_by: string[];
                    chat_disappear_by: {
                        user_id: string;
                        chat_disappearing: import("./schema/connections.schema").chatDisappearing;
                        chat_disapear_for: string;
                    }[];
                    chat_disappearing: string;
                    connection_muted_by: {
                        user_id: string;
                        time: number;
                        type: "HOUR" | "WEEK" | "ALWAYS" | null;
                    }[];
                    updated_at: number;
                    created_at: number;
                    _id: string;
                    __v: number;
                };
                <T = import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }>(options?: import("mongoose").ToObjectOptions & {
                    flattenMaps?: true;
                    flattenObjectIds?: false;
                }): import("mongoose").FlattenMaps<T>;
                <T = import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }>(options: import("mongoose").ToObjectOptions & {
                    flattenObjectIds: false;
                }): import("mongoose").FlattenMaps<T>;
                <T = import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }>(options: import("mongoose").ToObjectOptions & {
                    flattenObjectIds: true;
                }): import("mongoose").ObjectIdToString<import("mongoose").FlattenMaps<T>>;
                <T = import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }>(options: import("mongoose").ToObjectOptions & {
                    flattenMaps: false;
                }): T;
                <T = import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                }>(options: import("mongoose").ToObjectOptions & {
                    flattenMaps: false;
                    flattenObjectIds: true;
                }): import("mongoose").ObjectIdToString<T>;
            } | undefined;
            toObject?: {
                (options: import("mongoose").ToObjectOptions & {
                    virtuals: true;
                }): import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                };
                (options?: import("mongoose").ToObjectOptions): import("./schema/connections.schema").Connection & {
                    _id: import("mongoose").Types.ObjectId;
                } & {
                    __v: number;
                };
                <T>(options?: import("mongoose").ToObjectOptions): import("mongoose").Default__v<import("mongoose").Require_id<T>>;
            } | undefined;
            unmarkModified?: {
                <T extends keyof import("./schema/connections.schema").Connection>(path: T): void;
                (path: string): void;
            } | undefined;
            updateOne?: ((update?: import("mongoose").UpdateWithAggregationPipeline | import("mongoose").UpdateQuery<import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }> | undefined, options?: import("mongoose").QueryOptions | null) => import("mongoose").Query<any, import("mongoose").Document<unknown, {}, import("./schema/connections.schema").Connection, {}> & import("./schema/connections.schema").Connection & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            }, {}, unknown, "find", Record<string, never>>) | undefined;
            validate?: {
                <T extends keyof import("./schema/connections.schema").Connection>(pathsToValidate?: T | T[] | undefined, options?: import("mongoose").AnyObject): Promise<void>;
                (pathsToValidate?: import("mongoose").pathsToValidate, options?: import("mongoose").AnyObject): Promise<void>;
                (options: {
                    pathsToSkip?: import("mongoose").pathsToSkip;
                }): Promise<void>;
            } | undefined;
            validateSync?: {
                (options: {
                    pathsToSkip?: import("mongoose").pathsToSkip;
                    [k: string]: any;
                }): import("mongoose").Error.ValidationError | null;
                <T extends keyof import("./schema/connections.schema").Connection>(pathsToValidate?: T | T[] | undefined, options?: import("mongoose").AnyObject): import("mongoose").Error.ValidationError | null;
                (pathsToValidate?: import("mongoose").pathsToValidate, options?: import("mongoose").AnyObject): import("mongoose").Error.ValidationError | null;
            } | undefined;
            sent_by?: import("mongoose").Types.ObjectId | undefined;
            sent_to?: import("mongoose").Types.ObjectId | undefined;
            group_name?: string | undefined;
            group_creator_id?: import("mongoose").Types.ObjectId | undefined;
            group_image_url?: string | undefined;
            connection_type?: string | undefined;
            connection_locked_by?: import("mongoose").Types.ObjectId[] | undefined;
            connection_pinned_by?: import("mongoose").Types.ObjectId[] | undefined;
            connection_deleted_by?: import("mongoose").Types.ObjectId[] | undefined;
            connection_archived_by?: import("mongoose").Types.ObjectId[] | undefined;
            chat_disappear_by?: import("mongoose").FlattenMaps<{
                user_id: import("mongoose").Types.ObjectId;
                chat_disappearing: import("./schema/connections.schema").chatDisappearing;
                chat_disapear_for: string;
            }>[] | undefined;
            chat_disappearing?: string | undefined;
            connection_muted_by?: import("mongoose").FlattenMaps<{
                user_id: import("mongoose").Types.ObjectId;
                time: number;
                type: "HOUR" | "WEEK" | "ALWAYS" | null;
            }>[] | undefined;
            updated_at?: number | undefined;
            created_at?: number | undefined;
            __v?: number | undefined;
        };
    }>;
    connectionDetails(req: RequestDto, _id: string): Promise<{
        message: string;
        data: {};
    } | {
        data: any;
        message?: undefined;
    }>;
    chatHis(req: RequestDto, queryData: ConnectionDto): Promise<{
        count: any;
        data: any;
        total_archived_connections: number;
        total_locked_connections: number;
    }>;
    getHistory(req: RequestDto, req_query: chatHistory): Promise<{
        data: any;
    }>;
    messageDetails(req: RequestDto, _id: string): Promise<(import("mongoose").FlattenMaps<{
        connection_type: string;
        connection_id: import("mongoose").Types.ObjectId;
        sent_by: import("mongoose").Types.ObjectId;
        sent_to: import("mongoose").Types.ObjectId;
        call_id: import("mongoose").Types.ObjectId;
        reply_msg_id: import("mongoose").Types.ObjectId;
        type: string;
        message_id: string;
        message_type: string;
        message: string;
        media_url: string;
        duration: {
            toString: (radix?: number) => string;
            toFixed: (fractionDigits?: number) => string;
            toExponential: (fractionDigits?: number) => string;
            toPrecision: (precision?: number) => string;
            valueOf: () => number;
            toLocaleString: {
                (locales?: string | string[], options?: Intl.NumberFormatOptions): string;
                (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
            };
        };
        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: import("mongoose").Types.ObjectId[];
        call_data: any;
        deleted_for: import("mongoose").Types.ObjectId[];
        chat_disappear_by: {
            user_id: import("mongoose").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: {
            user_id: import("mongoose").Types.ObjectId;
            pinned_for: string;
            pinned_to: number;
            pinned_at: number;
        }[];
        updated_at: number;
        created_at: number;
    }> & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }) | null>;
    connectionMuteUnmute(req: RequestDto, dto: MuteNotificationType): Promise<{
        message: any;
    }>;
    markDelivered(req: RequestDto, message_id: string, user_id: string): Promise<any>;
    markRead(req: RequestDto, connection_id: string, user_id: string): Promise<{
        message: string;
    }>;
    groupOperations(req: RequestDto, body: GroupOperationsDto): Promise<string | {
        message: string;
        pinned: boolean;
        total_pinned?: undefined;
        removed_oldest?: undefined;
    } | {
        message: string;
        pinned: boolean;
        total_pinned: number;
        removed_oldest: boolean;
    } | {
        message: string;
        unpinned: boolean;
        total_pinned: number;
    }>;
    getPinnedMessages(req: RequestDto, connection_id: string): Promise<{
        pinned_messages: {
            _id: import("mongoose").Types.ObjectId;
            message: string;
            message_type: string;
            media_url: string;
            media: {
                type: string;
                url: string | null;
                thumbnail: string | null;
                caption: string | null;
                duration: number | null;
            }[];
            type: string;
            sent_by: import("mongoose").Types.ObjectId;
            created_at: number;
            pinned_at: number;
        }[];
        total_pinned: number;
        max_allowed: number;
    }>;
    getStarredMessages(req: RequestDto, connection_id: string): Promise<{
        message: string;
        data: any;
        count: any;
    }>;
    getMediaByConnection(req: RequestDto, connection_id: string, media_type?: string, pagination?: string, limit?: string): Promise<{
        message: string;
        data: (import("mongoose").FlattenMaps<{
            connection_id: import("mongoose").Types.ObjectId;
            message_id: import("mongoose").Types.ObjectId;
            sender_id: import("mongoose").Types.ObjectId;
            colors: string[];
            type: string;
            media_url: string;
            caption: string;
            duration: {
                toString: (radix?: number) => string;
                toFixed: (fractionDigits?: number) => string;
                toExponential: (fractionDigits?: number) => string;
                toPrecision: (precision?: number) => string;
                valueOf: () => number;
                toLocaleString: {
                    (locales?: string | string[], options?: Intl.NumberFormatOptions): string;
                    (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
                };
            };
            thumbnail: string;
            deleted_for: import("mongoose").Types.ObjectId[];
            updated_at: number;
            created_at: number;
        }> & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
        pagination: {
            page: number;
            limit: number;
        };
    }>;
    sendMessageWithPush(req: RequestDto, body: SendMessageFromPushDto): Promise<void>;
}
