export interface PlatformConfig {
  enabled: boolean
}

export interface DiscordConfig extends PlatformConfig {
  botToken: string
}

export interface DingtalkConfig extends PlatformConfig {
  clientId: string
  clientSecret: string
}

export interface LarkConfig extends PlatformConfig {
  appId: string
  appSecret: string
}

export interface TelegramConfig extends PlatformConfig {
  botToken: string
}

export interface SlackConfig extends PlatformConfig {
  botToken: string   // xoxb-
  appToken: string   // xapp-
}

export interface RemoteControlConfig {
  discord: DiscordConfig
  dingtalk: DingtalkConfig
  lark: LarkConfig
  telegram: TelegramConfig
  slack: SlackConfig
}

export interface ConfigChangeEvent {
  previousConfig: RemoteControlConfig
  newConfig: RemoteControlConfig
  changedPlatforms: ('discord' | 'dingtalk' | 'lark' | 'telegram' | 'slack')[]
}
