/* eslint-disable @typescript-eslint/no-explicit-any */
/**
 * 外部 SDK 类型声明（可选依赖）
 *
 * 这些 SDK 通过动态 import 在运行时加载，开发环境（Mock 模式）无需安装。
 * 安装对应 SDK 后，其自带的类型声明将覆盖此处的 any 声明。
 *
 * 安装命令见 docs/notifications/channels.md
 */

declare module "@alicloud/dysmsapi20170525" {
  const _default: any
  export { _default as default }
  export class SendSmsRequest {
    constructor(params?: Record<string, unknown>)
  }
}

declare module "@alicloud/openapi-client" {
  const _default: new (config: any) => any
  export { _default as default }
}

declare module "@alicloud/credentials" {
  const _default: new (config: any) => any
  export { _default as default }
}

declare module "tencentcloud-sdk-nodejs" {
  const _default: {
    sms: {
      v20210111: {
        Client: new (config: any) => any
      }
    }
  }
  export = _default
}

declare module "nodemailer" {
  const _default: {
    createTransport: (config: any) => {
      sendMail: (options: any) => Promise<{ messageId: string }>
    }
  }
  export = _default
}
