import { invoke } from '@tauri-apps/api/core'; import type { LibraryInfo, OkResponse, PrefsResponse, RecentsResponse, NoteResponse, VideoMetaResponse, SubtitleResponse, AvailableSubsResponse, EmbeddedSubsResponse, } from './types'; export const api = { selectFolder: () => invoke('select_folder'), openFolderPath: (folder: string) => invoke('open_folder_path', { folder }), getRecents: () => invoke('get_recents'), removeRecent: (path: string) => invoke('remove_recent', { path }), getLibrary: () => invoke('get_library'), setCurrent: (index: number, timecode: number = 0) => invoke('set_current', { index, timecode }), tickProgress: (index: number, currentTime: number, duration: number | null, playing: boolean) => invoke('tick_progress', { index, current_time: currentTime, duration, playing }), setFolderVolume: (volume: number) => invoke('set_folder_volume', { volume }), setFolderAutoplay: (enabled: boolean) => invoke('set_folder_autoplay', { enabled }), setFolderRate: (rate: number) => invoke('set_folder_rate', { rate }), setOrder: (fids: string[]) => invoke('set_order', { fids }), startDurationScan: () => invoke('start_duration_scan'), getPrefs: () => invoke('get_prefs'), setPrefs: (patch: Record) => invoke('set_prefs', { patch }), setAlwaysOnTop: (enabled: boolean) => invoke('set_always_on_top', { enabled }), saveWindowState: () => invoke('save_window_state'), getNote: (fid: string) => invoke('get_note', { fid }), setNote: (fid: string, note: string) => invoke('set_note', { fid, note }), getCurrentVideoMeta: () => invoke('get_current_video_meta'), getCurrentSubtitle: () => invoke('get_current_subtitle'), getEmbeddedSubtitles: () => invoke('get_embedded_subtitles'), extractEmbeddedSubtitle: (trackIndex: number) => invoke('extract_embedded_subtitle', { track_index: trackIndex }), getAvailableSubtitles: () => invoke('get_available_subtitles'), loadSidecarSubtitle: (filePath: string) => invoke('load_sidecar_subtitle', { file_path: filePath }), chooseSubtitleFile: () => invoke('choose_subtitle_file'), resetWatchProgress: () => invoke('reset_watch_progress'), };