import { type BlobManager, type BlockModel } from '@blockeditor/store';
import type { ImageBlockModel } from '../image-block/image-model.js';
import { AttachmentBlockModel, type AttachmentBlockProps } from './attachment-model.js';
export declare function cloneAttachmentProperties(model: AttachmentBlockModel): AttachmentBlockProps;
export declare function getAttachmentBlob(model: AttachmentBlockModel): Promise<Blob | null>;
/**
 * Since the size of the attachment may be very large,
 * the download process may take a long time!
 */
export declare function downloadAttachmentBlob(attachmentModel: AttachmentBlockModel): Promise<void>;
/**
 * Turn the attachment block into an image block.
 */
export declare function turnIntoImage(model: AttachmentBlockModel): Promise<void>;
/**
 * Turn the image block into a attachment block.
 */
export declare function turnImageIntoCardView(model: ImageBlockModel, blob: Blob): void;
/**
 * Add a new attachment block before / after the specified block.
 */
export declare function addSiblingAttachmentBlock(file: File, maxFileSize: number, model: BlockModel, place?: 'before' | 'after'): Promise<string | null>;
export declare function setAttachmentLoading(modelId: string, loading: boolean): void;
export declare function isAttachmentLoading(modelId: string): boolean;
/**
 * Use it with caution! This function may take a long time!
 *
 * @deprecated Use {@link getAttachmentBlob} instead.
 */
export declare function hasBlob(storage: BlobManager, sourceId: string): Promise<boolean>;
//# sourceMappingURL=utils.d.ts.map