export interface ElectronAPI {
  // Window controls
  minimize: () => void
  maximize: () => void
  close: () => void
  
  // IP Service
  getIpInfo: () => Promise<import('@shared/types').IpInfo>
  
  // Channel Management
  parseM3u8: (url: string) => Promise<import('@shared/types').Channel[]>
  getChannels: () => Promise<import('@shared/types').Channel[]>
  updateChannel: (channel: import('@shared/types').Channel) => Promise<void>
  setChannelMonitored: (channelId: string, monitored: boolean) => Promise<void>
  
  // Monitoring
  startMonitoring: () => Promise<void>
  stopMonitoring: () => Promise<void>
  getMonitoringStatus: () => Promise<{ isRunning: boolean }>
  onMonitoringUpdate: (callback: (result: import('@shared/types').MonitoringResult) => void) => () => void
  
  // Ping
  pingHost: (host: string) => Promise<import('@shared/types').PingResult>
  
  // Notifications
  sendNotification: (title: string, body: string, type?: import('@shared/types').NotificationType) => Promise<void>
  testNotification: (type: import('@shared/types').NotificationType) => Promise<{ success: boolean; error?: string }>
  
  // Panel API
  panelRegister: (config: import('@shared/types').PanelConfig) => Promise<{ success: boolean; authToken?: string }>
  panelGetIps: () => Promise<import('@shared/types').PanelIpPool>
  panelSendVote: (vote: import('@shared/types').BurnVote) => Promise<{ success: boolean }>
  panelHeartbeat: (stats: import('@shared/types').HeartbeatStats) => Promise<import('@shared/types').HeartbeatResponse>
  
  // Settings
  getSettings: () => Promise<import('@shared/types').AppSettings>
  saveSettings: (settings: import('@shared/types').AppSettings) => Promise<void>
  
  // Error Log
  getErrorLog: () => Promise<import('@shared/types').ErrorLogEntry[]>
  clearErrorLog: () => Promise<void>

  // App Info
  getAppInfo: () => Promise<{ version: string; isPortable: boolean; dataPath: string }>
}

declare global {
  interface Window {
    electron: ElectronAPI
  }
}

