import type { DeepReadonly } from 'vue'; import type { Conversation } from '../../types/schemas/chat/conversations.js'; export type ConversationListOptions = { conversations: DeepReadonly; currentId?: string; getMemberImage?: (userId: string) => string | undefined; selectConversation?: (id: string) => void | Promise; resetConversation?: () => void | Promise; startConversation?: (groupId?: string | null) => void | Promise; loading?: boolean; }; export type GroupDeleteTarget = { id: string; name: string; conversationIds: string[]; conversationCount: number; }; export declare function useConversationList(options: ConversationListOptions): { conversationSearch: any; groupedConversations: any; hasConversationSearchQuery: any; hasConversationContent: any; shouldShowSkeleton: any; emptyConversationMessage: any; skeletonRows: readonly [{ readonly id: "row-1"; readonly width: "72%"; }, { readonly id: "row-2"; readonly width: "54%"; }, { readonly id: "row-3"; readonly width: "64%"; }, { readonly id: "row-4"; readonly width: "46%"; }, { readonly id: "row-5"; readonly width: "78%"; }, { readonly id: "row-6"; readonly width: "58%"; }, { readonly id: "row-7"; readonly width: "69%"; }, { readonly id: "row-8"; readonly width: "51%"; }, { readonly id: "row-9"; readonly width: "74%"; }, { readonly id: "row-10"; readonly width: "62%"; }]; groupItems: any; ungroupedConversations: any; ungroupedDropTarget: any; ungroupedConversationLabel: any; shouldShowUngroupedHeader: any; showGroupCreationPrompt: any; showDeleteGroupModal: any; showDeleteGroupConversationsModal: any; groupActionLoading: any; deleteGroupTarget: any; deleteGroupConversationsTarget: any; renamingGroupId: any; renameGroupName: any; renameGroupError: any; deleteGroupConfirmationMessage: any; deleteGroupConversationsConfirmationMessage: any; isGroupOpen: (groupId: string) => any; setGroupOpen: (groupId: string, open: boolean) => void; toggleGroup: (groupId: string) => void; openDeleteGroupModal: (groupId: string, groupName: string, conversations: readonly Pick[]) => void; openDeleteGroupConversationsModal: (groupId: string, groupName: string, conversations: readonly Pick[]) => void; startRenameGroup: (groupId: string, groupName: string) => void; setRenameGroupInputRef: (element: unknown, groupId: string) => void; getGroupMenuItems: (groupId: string, groupName: string, conversations: readonly Pick[]) => ({ label: string; icon: string; click: () => void; color?: undefined; disabled?: undefined; } | { label: string; icon: string; color: "negative"; click: () => void; disabled?: undefined; } | { label: string; icon: string; color: "negative"; disabled: boolean; click: () => void; })[]; clearDeleteGroupTarget: () => void; clearDeleteGroupConversationsTarget: () => void; cancelRenameGroup: () => void; formatConversationCount: (count: number) => string; groupConversationsMoveMessage: (count: number) => "A conversa desta pasta será movida para Conversas." | "As conversas desta pasta serão movidas para Conversas."; confirmDeleteGroup: () => Promise; confirmDeleteGroupConversations: () => Promise; submitRenameGroup: () => Promise; handleRenameGroupBlur: () => void; handleDelete: (id: string) => Promise; handleRename: (id: string, title: string) => Promise; handleDuplicate: (id: string) => Promise; handleExport: (id: string) => Promise; handleConversationDragStart: (id: string) => void; clearDragState: () => void; handleDragEnter: (groupId: string | null) => void; handleDragOver: (event: DragEvent, groupId: string | null) => void; handleDragLeave: (event: DragEvent, groupId: string | null) => void; isDropTarget: (groupId: string | null) => boolean; getConversationItemProps: (conversation: DeepReadonly) => { conversation: any; active: boolean; draggable: boolean; userImage: string | undefined; selectConversation: ((id: string) => void | Promise) | undefined; }; handleConversationDrop: (event: DragEvent, groupId: string | null) => Promise; startConversationInGroup: (groupId: string) => void; };