import { type LocalUploadAttachment } from 'stream-chat'; /** * Download behavior notes: * * - Remote attachments prefer `fetch -> blob -> objectURL` instead of direct link clicks. * - In Chromium, direct sequential clicks on cross-origin URLs can yield only one actual * downloaded file even when multiple anchor clicks are fired. * - Blob URLs are same-document downloads and preserve caller-provided `a.download` names * more reliably than direct remote URLs. * - If remote fetch fails (e.g. CORS/policy/network), the code falls back to direct URL * download so the action remains functional. */ export type DownloadableAttachment = { asset_url?: string; image_url?: string; localMetadata?: LocalUploadAttachment['localMetadata']; title?: string; }; export declare const isDownloadableAttachment: (attachment: unknown) => attachment is DownloadableAttachment; export declare const downloadAttachment: (attachment: DownloadableAttachment, options?: { openRemoteInNewTab?: boolean; preferRemoteFetch?: boolean; }) => Promise; export declare const downloadAllAttachments: (attachments: DownloadableAttachment[]) => Promise; //# sourceMappingURL=downloadUtils.d.ts.map