import { invoke } from "@tauri-apps/api/core"; import type { ProviderHealth, CircuitBreakerConfig, CircuitBreakerStats, } from "@/types/proxy"; export interface Provider { id: string; name: string; settingsConfig: unknown; websiteUrl?: string; category?: string; createdAt?: number; sortIndex?: number; notes?: string; meta?: unknown; icon?: string; iconColor?: string; isProxyTarget?: boolean; } export const failoverApi = { // 获取代理目标列表 async getProxyTargets(appType: string): Promise { return invoke("get_proxy_targets", { appType }); }, // 设置代理目标 async setProxyTarget( providerId: string, appType: string, enabled: boolean, ): Promise { return invoke("set_proxy_target", { providerId, appType, enabled }); }, // 获取供应商健康状态 async getProviderHealth( providerId: string, appType: string, ): Promise { return invoke("get_provider_health", { providerId, appType }); }, // 重置熔断器 async resetCircuitBreaker( providerId: string, appType: string, ): Promise { return invoke("reset_circuit_breaker", { providerId, appType }); }, // 获取熔断器配置 async getCircuitBreakerConfig(): Promise { return invoke("get_circuit_breaker_config"); }, // 更新熔断器配置 async updateCircuitBreakerConfig( config: CircuitBreakerConfig, ): Promise { return invoke("update_circuit_breaker_config", { config }); }, // 获取熔断器统计信息 async getCircuitBreakerStats( providerId: string, appType: string, ): Promise { return invoke("get_circuit_breaker_stats", { providerId, appType }); }, };