import { InTextMsg } from './entity/msg/in/InTextMsg';
import { OutMsg } from './entity/msg/out/OutMsg';
import { InNotDefinedMsg } from './entity/msg/in/InNotDefinedMsg';
import { InImageMsg } from './entity/msg/in/InImageMsg';
import { InVideoMsg } from './entity/msg/in/InVideoMsg';
import { InVoiceMsg } from './entity/msg/in/InVoiceMsg';
import { InShortVideoMsg } from './entity/msg/in/InShortVideoMsg';
import { InLocationMsg } from './entity/msg/in/InLocationMsg';
import { InLinkMsg } from './entity/msg/in/InLinkMsg';
import { InSpeechRecognitionResults } from './entity/msg/in/InSpeechRecognitionResults';
import { InFollowEvent } from './entity/msg/in/event/InFollowEvent';
import { InQrCodeEvent } from './entity/msg/in/event/InQrCodeEvent';
import { InLocationEvent } from './entity/msg/in/event/InLocationEvent';
import { InMenuEvent } from './entity/msg/in/event/InMenuEvent';
import { InTemplateMsgEvent } from './entity/msg/in/event/InTemplateMsgEvent';
import { InShakearoundUserShakeEvent } from './entity/msg/in/event/InShakearoundUserShakeEvent';
import { InTaskEvent } from './entity/msg/in/event/InTaskEvent';
import { InEnterAgentEvent } from './entity/msg/in/event/InEnterAgentEvent';
import { InBatchJobResultEvent } from './entity/msg/in/event/InBatchJobResultEvent';
import { InUpdatePartyEvent } from './entity/msg/in/event/InUpdatePartyEvent';
import { InSuiteTicket } from './entity/msg/in/InSuiteTicket';
import { InAuthEvent } from './entity/msg/in/InAuthEvent';
import { InMsg } from './entity/msg/in/InMsg';
import { OutTextMsg } from './entity/msg/out/OutTextMsg';
import { InBatchJobResult } from './entity/msg/in/InBatchJobResult';
import { InUpdateTagEvent } from './entity/msg/in/event/InUpdateTagEvent';
import { InUpdateUserEvent } from './entity/msg/in/event/InUpdateUserEvent';
import { InExternalContactEvent } from './entity/msg/in/event/InExternalContactEvent';
import { InExternalContact } from './entity/msg/in/InExternalContact';
import { InRegisterCorp } from './entity/msg/in/InRegisterCorp';
import { InComponentVerifyTicket } from './entity/msg/in/InComponentVerifyTicket';
import { InAuthMpEvent } from './entity/msg/in/InAuthMpEvent';
import { InMassEvent } from './entity/msg/in/event/InMassEvent';
import { InWxVerifyDispatchEvent } from './entity/msg/in/event/InWxVerifyDispatchEvent';
/**
 * @author Javen
 * @copyright javendev@126.com
 * @description 消息适配器
 */
export interface MsgAdapter {
    processInTextMsg(inTextMsg: InTextMsg): Promise<OutMsg>;
    processInImageMsg(inImageMsg: InImageMsg): Promise<OutMsg>;
    processInVoiceMsg(inVoiceMsg: InVoiceMsg): Promise<OutMsg>;
    processInVideoMsg(inVideoMsg: InVideoMsg): Promise<OutMsg>;
    processInShortVideoMsg(inShortVideoMsg: InShortVideoMsg): Promise<OutMsg>;
    processInLocationMsg(inLocationMsg: InLocationMsg): Promise<OutMsg>;
    processInLinkMsg(inLinkMsg: InLinkMsg): Promise<OutMsg>;
    processInSpeechRecognitionResults(inSpeechRecognitionResults: InSpeechRecognitionResults): Promise<OutMsg>;
    processIsNotDefinedMsg(inNotDefinedMsg: InNotDefinedMsg): Promise<OutMsg>;
    processInFollowEvent(inFollowEvent: InFollowEvent): Promise<OutMsg>;
    processInQrCodeEvent(inQrCodeEvent: InQrCodeEvent): Promise<OutMsg>;
    processInLocationEvent(inLocationEvent: InLocationEvent): Promise<OutMsg>;
    processInMenuEvent(inMenuEvent: InMenuEvent): Promise<OutMsg>;
    processInWxVerifyDispatchEvent(inWxVerifyDispatchEvent: InWxVerifyDispatchEvent): Promise<OutMsg>;
    processInTemplateMsgEvent(inTemplateMsgEvent: InTemplateMsgEvent): Promise<OutMsg>;
    processInShakearoundUserShakeEvent(inShakearoundUserShakeEvent: InShakearoundUserShakeEvent): Promise<OutMsg>;
    processInTaskEvent(inTaskEvent: InTaskEvent): Promise<OutMsg>;
    processInEnterAgentEvent(inEnterAgentEvent: InEnterAgentEvent): Promise<OutMsg>;
    processInBatchJobResultEvent(inBatchJobResultEvent: InBatchJobResultEvent): Promise<OutMsg>;
    processInUpdateUserEvent(inUpdateUserEvent: InUpdateUserEvent): Promise<OutMsg>;
    processInUpdatePartyEvent(inUpdatePartyEvent: InUpdatePartyEvent): Promise<OutMsg>;
    processInUpdateTagEvent(inUpdateTagEvent: InUpdateTagEvent): Promise<OutMsg>;
    processInMassEvent(inMassEvent: InMassEvent): Promise<OutMsg>;
    processInSuiteTicket(inSuiteTicket: InSuiteTicket): Promise<string>;
    processInComponentVerifyTicket(inComponentVerifyTicket: InComponentVerifyTicket): Promise<string>;
    processInAuthEvent(inAuthEvent: InAuthEvent): Promise<string>;
    processInAuthMpEvent(inAuthMpEvent: InAuthMpEvent): Promise<string>;
    processInBatchJobResult(inBatchJobResult: InBatchJobResult): Promise<string>;
    processInExternalContactEvent(inExternalContactEvent: InExternalContactEvent): Promise<string>;
    processInExternalContact(inExternalContact: InExternalContact): Promise<string>;
    processInRegisterCorp(inRegisterCorp: InRegisterCorp): Promise<string>;
    renderOutTextMsg(inMsg: InMsg, content?: string): Promise<OutTextMsg>;
}
