import { ModuleMetadata, Type } from '@nestjs/common'; import { RedisOptions } from 'ioredis'; export interface IotSimModuleOptions { xuyuOptions?: XuyuIotSimOptions; luatOptions?: LuatIotSimOptions; oneLinkOptions?: Record; redisOptions: RedisOptions; } export interface XuyuIotSimOptions { /** 接入信息编码 */ agencyCode: string; /** 接入信息秘钥 */ key: string; } export interface LuatIotSimOptions { /** app key */ appKey: string; /** app secret */ appSecret: string; } export interface OneLinkIotSimOptions { /** app id */ appId: string; /** 密码 */ password: string; } export interface IotSimOptionsFactory { createIotSimOptions(): IotSimModuleOptions | Promise; } /** 异步传入配置 */ export interface IotSimModuleAsyncOptions extends Pick { useExisting?: Type; useClass?: Type; useFactory?: (...args: any[]) => IotSimModuleOptions | Promise; inject?: any[]; }