export async function detectMediaDimensionsAndAspect( url: string, type: 'video' | 'image' ): Promise<{ width: number; height: number; format: 'video' | 'image'; aspect: string }> { return new Promise((resolve, reject) => { if (type === 'image') { const img = new Image(); img.onload = () => { resolve({ width: img.width, height: img.height, format: 'image', aspect: `${img.width}:${img.height}`, }); }; img.onerror = () => reject(new Error('Failed to load image to detect dimensions.')); img.src = url; } else { const video = document.createElement('video'); video.onloadedmetadata = () => { resolve({ width: video.videoWidth, height: video.videoHeight, format: 'video', aspect: `${video.videoWidth}:${video.videoHeight}`, }); }; video.onerror = () => reject(new Error('Failed to load video to detect dimensions.')); video.src = url; } }); }