import { EntityDict } from '../oak-app-domain'; import { BackendRuntimeContext } from '../context/BackendRuntimeContext'; import { EmailOptions } from './Email'; type WechatPublicTemplateMsgKeyword = 'keyword1' | 'keyword2' | 'keyword3' | 'keyword4' | 'keyword5' | 'keyword6' | 'keyword7'; export type Channel = 'wechatPublic' | 'jPush' | 'jim' | 'wechatMp' | 'sms' | 'email' | string; export type Weight = 'high' | 'medium' | 'low'; type CommonMessageConverter> = { wechatMp?: (message: ED['message']['OpSchema'], applications: EntityDict['application']['Schema'][], application: EntityDict['application']['Schema'], context: Cxt) => Promise<{ [K: string]: { value: string; }; } | undefined>; wechatPublic?: (message: ED['message']['OpSchema'], applications: EntityDict['application']['Schema'][], application: EntityDict['application']['Schema'], context: Cxt) => Promise<{ data: { first?: { value: string; color?: string; }; remark?: { value: string; color?: string; }; } & { [K in WechatPublicTemplateMsgKeyword]?: { value: string; color?: string; }; }; wechatMpAppId?: string; } | undefined>; sms?: (message: ED['message']['OpSchema'], context: Cxt) => Promise<{ signName?: string; params?: Record; paramsArray?: Array; } | undefined>; email?: (message: ED['message']['OpSchema'], context: Cxt) => Promise; }; type CustomMessageConverter> = { [type: string]: { [channel: Channel]: (message: ED['message']['OpSchema'], context: Cxt) => Promise; }; }; export interface MessageNotificationConverter> { [type: string]: CommonMessageConverter & CustomMessageConverter; } export {};