1/**
 2 * Unified exports for all utility functions
 3 * Import utilities from '$lib/utils' for cleaner imports
 4 *
 5 * For browser-only utilities (pdf-processing, audio-recording, svg-to-png,
 6 * webp-to-png, process-uploaded-files, convert-files-to-extra), use:
 7 * import { ... } from '$lib/utils/browser-only'
 8 */
 9
10// API utilities
11export { getAuthHeaders, getJsonHeaders } from './api-headers';
12export { validateApiKey } from './api-key-validation';
13
14// Attachment utilities
15export {
16	getAttachmentDisplayItems,
17	type AttachmentDisplayItemsOptions
18} from './attachment-display';
19export { isTextFile, isImageFile, isPdfFile, isAudioFile } from './attachment-type';
20
21// Textarea utilities
22export { default as autoResizeTextarea } from './autoresize-textarea';
23
24// Branching utilities
25export {
26	filterByLeafNodeId,
27	findLeafNode,
28	findDescendantMessages,
29	getMessageSiblings,
30	getMessageDisplayList,
31	hasMessageSiblings,
32	getNextSibling,
33	getPreviousSibling
34} from './branching';
35
36// Config helpers
37export { setConfigValue, getConfigValue, configToParameterRecord } from './config-helpers';
38
39// Conversation utilities
40export { createMessageCountMap, getMessageCount } from './conversation-utils';
41
42// Clipboard utilities
43export {
44	copyToClipboard,
45	copyCodeToClipboard,
46	formatMessageForClipboard,
47	parseClipboardContent,
48	hasClipboardAttachments,
49	type ClipboardTextAttachment,
50	type ParsedClipboardContent
51} from './clipboard';
52
53// File preview utilities
54export { getFileTypeLabel } from './file-preview';
55export { getPreviewText } from './text';
56
57// File type utilities
58export {
59	getFileTypeCategory,
60	getFileTypeCategoryByExtension,
61	getFileTypeByExtension,
62	isFileTypeSupported
63} from './file-type';
64
65// Formatting utilities
66export { formatFileSize, formatParameters, formatNumber } from './formatters';
67
68// IME utilities
69export { isIMEComposing } from './is-ime-composing';
70
71// LaTeX utilities
72export { maskInlineLaTeX, preprocessLaTeX } from './latex-protection';
73
74// Modality file validation utilities
75export {
76	isFileTypeSupportedByModel,
77	filterFilesByModalities,
78	generateModalityErrorMessage,
79	type ModalityCapabilities
80} from './modality-file-validation';
81
82// Model name utilities
83export { normalizeModelName, isValidModelName } from './model-names';
84
85// Portal utilities
86export { portalToBody } from './portal-to-body';
87
88// Precision utilities
89export { normalizeFloatingPoint, normalizeNumber } from './precision';
90
91// Syntax highlighting utilities
92export { getLanguageFromFilename } from './syntax-highlight-language';
93
94// Text file utilities
95export { isTextFileByName, readFileAsText, isLikelyTextFile } from './text-files';