import { SubtitleData, HoverTarget } from '../subtitle-player/SubtitlePlayer'; /** * 字幕详情信息 */ export interface SubtitleDetail { /** 单词或短语 */ word: string; /** 发音(音标) */ pronunciation?: string; /** 中文解释 */ translation?: string; /** 英文解释 */ definition?: string; /** 例句 */ examples?: Array<{ sentence: string; translation: string; }>; /** 词性 */ partOfSpeech?: string; } /** * 视频字幕播放器状态 */ export interface VideoSubtitleState { /** 播放进度(秒数) */ currentTime: number; /** 是否正在播放 */ isPlaying: boolean; /** 字幕数据 */ subtitles: SubtitleData[]; /** 当前hover的单词详情 */ currentDetail: SubtitleDetail | null; /** 是否正在加载详情 */ isLoadingDetail: boolean; } /** * 视频字幕播放器操作 */ export interface VideoSubtitleActions { /** 设置播放进度 */ setCurrentTime: (time: number) => void; /** 设置播放状态 */ setIsPlaying: (playing: boolean) => void; /** 设置字幕数据 */ setSubtitles: (subtitles: SubtitleData[]) => void; /** 设置当前详情 */ setCurrentDetail: (detail: SubtitleDetail | null) => void; /** 设置加载状态 */ setIsLoadingDetail: (loading: boolean) => void; /** 根据hover目标获取详情(可以在这里调用大模型API) */ fetchDetail: (target: HoverTarget | null) => Promise; /** 重置状态 */ reset: () => void; } export type VideoSubtitleStore = VideoSubtitleState & VideoSubtitleActions; /** * 创建视频字幕播放器store * @param fetchDetailFn 可选的详情获取函数,如果不提供则使用默认实现 */ export declare const useVideoSubtitleStore: import('zustand').UseBoundStore>;