import type { ButtonProps } from '../../components/button.js'; import type { Media, Theme } from '../../types/props.js'; type TitleSizeType = '5' | '4' | '3' | '2' | '1'; export interface HeroBannerProps extends Omit, 'title'> { data: { /** 标签 */ label?: string; /** 主标题 */ title: string; /** 副标题/描述文本 */ subtitle: string; /** 结束时间(ISO 字符串) */ endDate?: string; /** 结束时间时区(如: America/Los_Angeles) */ endDate_tz?: string; dateFormat?: string; /** 图标列表 */ iconArray?: Array; pcImage: Media; padImage?: Media; mobileImage: Media; pcVideo?: Media; padVideo?: Media; mobileVideo?: Media; isShowVideo?: boolean; /** 视频是否循环播放 */ isVideoLoop?: boolean; blockLink?: string; /** 主按钮文本和配置 */ primaryButton?: { text: string; link?: string; isCustomPrimaryButton?: boolean; /** 自定义事件ID,传递给 onPrimaryClick */ customPrimaryEventId?: string; } & Omit; /** 次要按钮文本和配置 */ secondaryButton?: { text: string; link?: string; isShowPlayVideoButton?: boolean; playVideoButtonText?: string; playIcon?: boolean; videoUrl?: Media; youtubeId?: string; /** 是否为YouTube视频,true时播放YouTube视频(需要youtubeId),false时播放原生video(需要isShowPlayVideoButton为true且videoUrl.url存在) */ isYoutubeVideo?: boolean; isCustomSecondaryButton?: boolean; /** 自定义事件ID,传递给 onSecondaryClick */ customSecondaryEventId?: string; } & Omit; /** 主题 */ theme?: Theme; /** 大小, 默认default,单banner, 可选sm, 用于多banner场景 */ size?: 'default' | 'sm'; titleSize?: TitleSizeType; /** 内容对齐方式 */ align?: 'left' | 'center'; /** 底部产品列表 */ caption?: Array<{ title: string; }>; }; onSecondaryClick?: (data: any, e: any, customPrimaryEventId?: string) => void; onPrimaryClick?: (data: any, e: any, customSecondaryEventId?: string) => void; } export {};