import { invoke } from "@tauri-apps/api/core"; import { listen } from "@tauri-apps/api/event"; import { openUrl } from "@tauri-apps/plugin-opener"; import type { BrowserScanResult, CleanResult, FastScanResult, FileNode, MemoryStats, ProjectCleanProgressPayload, ScanProgressPayload, } from "../../types/cleaner"; export function startFastScan() { return invoke("start_fast_scan"); } export function startFastClean(selectedPaths: string[]) { return invoke("start_fast_clean", { selectedPaths }); } export function cleanSystemComponents() { return invoke("clean_system_components"); } export function cleanThumbnails() { return invoke("clean_thumbnails"); } export function disableHibernation() { return invoke("disable_hibernation"); } export function startBrowserScan(browser: "chrome" | "edge") { return invoke("start_browser_scan", { browser }); } export function startBrowserClean(browser: "chrome" | "edge", profiles: string[]) { return invoke("start_browser_clean", { browser, profiles }); } export function startFullDiskScan() { return invoke("start_full_disk_scan"); } export function getTreeChildren(path: string) { return invoke("get_tree_children", { path }); } export function subscribeScanProgress( handler: (payload: ScanProgressPayload) => void, ) { return listen("scan-progress", (event) => { handler(event.payload); }); } export function subscribeFastCleanProgress( handler: (payload: ProjectCleanProgressPayload) => void, ) { return listen("fast-clean-progress", (event) => { handler(event.payload); }); } export function subscribeBrowserCleanProgress( handler: (payload: ProjectCleanProgressPayload) => void, ) { return listen("browser-clean-progress", (event) => { handler(event.payload); }); } export function openInExplorer(path: string) { return invoke("open_in_explorer", { path }); } export function openSearch(query: string, provider: "google" | "perplexity") { const encoded = encodeURIComponent(query); const url = provider === "google" ? `https://www.google.com/search?q=${encoded}` : `https://www.perplexity.ai/?q=${encoded}`; return openUrl(url); } export function getMemoryStats() { return invoke("get_memory_stats"); } export function runMemoryClean() { return invoke("run_memory_clean"); } export function runDeepMemoryClean() { return invoke("run_deep_memory_clean"); }