export * from "./components"; export interface ChatMessageSenderInterface { uid: string; icon: string; name: string; phone: string; } export interface ChatMessageTimeInterface { /** время создания */ created: any; /** время доставки */ delivery?: any; /** время прочтения */ read?: any; } /** * * */ export interface ChatMessage { /** * содержимое сообщения * */ content: any | Date; /** * тип сообщения * */ type: ChatMessageTypeEnum; /** время создание */ time: ChatMessageTimeInterface; /** * направления сообщения * */ direction: ChatMessageDirectionEnum; /** * отправитель * */ sender: ChatMessageSenderInterface; } /** * * */ export declare enum ChatMessageDirectionEnum { /** * сообщения написал кто то другой, и получено мною * */ toMe = 0, /** * сообщения написал я * */ fromMe = 1, /** * сообщения которое будет отображаться в центре * */ center = 2 } /** * * */ export declare enum ChatMessageTypeEnum { /** * сообщения написал кто то другой, и получено мною * */ text = "text", /** * аудио сообщения записанное самим пользователем * */ liveAudio = "live-audio", /** * аудио сообщение любое которое не записано самим пользователем * */ audio = "audio", /** * фотка сделанная на устройстве пользователя и отправленная сразу * */ liveImage = "live-image", /** * фотка из устройства отправителя * */ image = "image", /** * видео сделанная на устройстве пользователя и отправленная сразу * */ liveVideo = "live-video", /** * видео из устройства отправителя * */ video = "video", /** * файл из устройства отправителя * */ file = "file", /** * timestamp * */ date = "date", /** * Печатает сообщение */ loading = "loading" } /** * * */ export interface ChatCategoryInterface { name: string; id: string; } export interface ChatContactInterface { id: string | number; img: string; name: string; mess: string; time: { created: Date; }; category: string; online: boolean; } export interface ChatDialogInterface { id: number; img: string; name: string; mess: string; time: { /** время создания */ created: any; /** время доставки */ delivery?: any; /** время прочтения */ read?: any; }; newMessage?: number; category: string; online: boolean; } export interface ChatLogo { id: string; logo: string; } export interface ChatNavItems { id: number; icon: string; } export declare enum ChatLinkTypeEnum { showFile = "showFile", showDialogs = "showDialogs", showPersonalDialog = "showPersonalDialog", userNamePersonal = "user-name-personal", addDialog = "\"add-dialog\"", fromMobileContacts = "\"contacts\"", fromMobileMenuBar = "menu-bar" } /** * эмит при клике на диалог/контакт * */ export interface ChatClickToLinkEmit { place?: ChatLinkTypeEnum; data?: ChatDialogInterface; } export interface ChatWritingUserInterface { uid: string; icon: string; phone: string; name: string; } /** * * */ export declare function chatConvertWritingStatusToMessage(writing: ChatWritingUserInterface): ChatMessage; export interface CreateMessageOptionsInputInterface { direction: ChatMessageDirectionEnum.fromMe; time: { created: Date; delivery: Date; read: Date; }; } /** * создание текстового сообщения * */ export declare function createTextMessage(text: string, sender: ChatMessageSenderInterface, options?: CreateMessageOptionsInputInterface): ChatMessage; /** * создание сообщения * */ export declare function createMessage(type: ChatMessageTypeEnum, content: any, sender: ChatMessageSenderInterface, options?: CreateMessageOptionsInputInterface): ChatMessage; /** * filter message by search value * */ export declare function filterMessageBySearchValue(value: string, message: ChatMessage[]): ChatMessage[]; /** * filter dialogs by search value * */ export declare function filterDialogsBySearchValue(value: string, dialogs: ChatDialogInterface[]): ChatDialogInterface[]; /** * filter contact by search value * */ export declare function filterContactBySearchValue(value: string, contacts: ChatContactInterface[]): ChatContactInterface[]; /** * filter dialogs by category id * */ export declare function filterDialogsByCategory(category: ChatCategoryInterface, dialogs: ChatDialogInterface[]): ChatDialogInterface[]; export declare enum ChatViewToShowEnum { files = "files", dialogs = "dialogs", personal = "personal", profile = "profile", users = "users", contacts = "contacts", folders = "folders" } export interface ShowFullChatOutputInterface { view: ChatViewToShowEnum; data?: ChatDialogInterface; } export interface ChatCreateFolderOutputInterface { name: string; chats: ChatDialogInterface[]; } export declare enum ChatUserActionStatusState { writing = "writing", audioRecording = "audio-recording" } export declare enum ChatUserPresenceState { offline = 0, online = 1 } export declare function scrollToBot(scrollContainer: HTMLElement, options?: { timer?: number; y?: number; }): void;