export type HaloColor = 'blue' | 'pink'; export interface HaloConfig { /** * 光圈半径(px) */ radius: number; /** * 光圈模糊(px) */ blur: number; /** * 光圈渐变配置 */ gradient: Array<{ stop: number; color: string; }>; /** * 光圈透明度(0-1) * @default 1 */ opacity?: number; } export interface HaloProps { /** * 音频源:MediaStream(用于实时录音可视化)或 Blob/File(用于已录制或上传的音频可视化) * @type { MediaStream | Blob | File | null } * @default undefined */ source?: MediaStream | Blob | File | null; /** * 光圈颜色 * @type { HaloColor } * @default 'blue' */ color?: HaloColor; /** * 光圈半径(px) * @type { number } * @default undefined */ radius?: number; /** * 光圈渐变配置 * @type { Array<{ stop: number; color: string }> } * @default undefined */ gradient?: Array<{ stop: number; color: string; }>; /** * 自定义类名 * @type { string } * @default undefined */ className?: string; }