import type { NestableAttachmentInputUnion } from "../../form/elements/inputs/attachments/types.js";

/**
 * @param file - The Blob or File whose duration should be read.
 * @param mediaType - The media element type to create.
 * @internal
 */
export function getMediaDurationInSeconds(file: Blob | File, mediaType: "audio" | "video"): Promise<number | null>;

/**
 * @param file - The Blob or File whose intrinsic dimensions should be read.
 * @internal
 */
export function getImageDimensionsInPixels(file: Blob | File): Promise<{
    width: number;
    height: number;
} | null>;

/**
 * @param inputType - The attachment input type to categorize.
 * @internal
 */
export function getAttachmentCategoryForInputType(inputType: NestableAttachmentInputUnion["type"]): "audio" | "document" | "image" | "video";