export interface MediaBox { width: number; height: number; } export declare const DEFAULT_VIDEO_SIZE: MediaBox; export declare const DEFAULT_AUDIO_SIZE: MediaBox; export declare const COMPACT_AUDIO_MAX_PX = 96; export declare const isCompactAudioBox: (width: number, height: number) => boolean; export declare const mediaPlayerHostId: (elementId: string) => string; export interface MediaPlacement extends MediaBox { left: number; top: number; } /** * Symmetric row counts that read as a simple shape on a slide: * pair, triangle, square, hexagon-like, etc. */ export declare const mediaRowPattern: (count: number) => number[]; export declare const fitBox: (srcW: number, srcH: number, maxW: number, maxH: number) => MediaBox; /** * Place boxes in a centered, symmetric bouquet. Items keep their aspect * ratio and are not grouped — callers should select at most one afterwards. */ export declare const layoutMediaBoxes: (boxes: MediaBox[], canvasWidth: number, canvasHeight: number) => MediaPlacement[];