/** Core format you wanted to standardize around */
export interface Base64String {
    base64String?: string;
}
export interface Base64Asset extends Base64String {
    id?: number;
}
export interface Base64File extends Base64Asset {
    /** Display or server filename; when converting from a File, we use File.name */
    fileName: string;
    originalFileName?: string;
    /** Parsed or inferred MIME type */
    fileType?: string;
}
export interface Base64Image {
    imageData: Base64Asset;
    imageTitle?: string;
    imageProps?: Record<string, unknown>;
}
/** Ensure we have a well-formed data URL; if raw base64 is provided, wrap it */
declare function ensureDataUrl(base64Data: string, contentType?: string): string;
export declare const useAssetFile: () => {
    hydrateAssetFile: <T extends Base64Asset>(assetFile: T) => Promise<T>;
    base64ToFile: (base64Data: string, filename: string, defaultContentType?: string) => File | undefined;
    fileToBase64: (file: File, maxFileSizeMB?: number) => Promise<Base64File>;
    fileToBase64String: (file: File, maxFileSizeMB?: number) => Promise<Base64String>;
    downloadBase64File: (base64Data: string, filename: string) => void;
    downloadAsset: (input: string | Base64File | Base64Asset, filename?: string, defaultContentType?: string) => void;
    ensureDataUrl: typeof ensureDataUrl;
};
export {};
