import ServerRequestInterface from '../Core/Http/Contracts/ServerRequestInterface'; import Encryptor from '../Core/Encryptor'; import ServerInterface from '../Core/Contracts/ServerInterface'; import Response from '../Core/Http/Response'; import Message from './Message'; import { ServerEventType, ServerHandlerClosure, ServerMessageType } from '../Types/global'; declare class Server extends ServerInterface { protected encryptor: Encryptor; protected request: ServerRequestInterface; constructor(encryptor: Encryptor, request?: ServerRequestInterface); /** * 服务端消息处理 * @returns */ serve(): Promise; /** * 设置联系人变化的消息处理器 * @param handler */ handleContactChanged(handler: ServerHandlerClosure): this; /** * 设置用户标签变化的消息处理器 * @param handler */ handleUserTagUpdated(handler: ServerHandlerClosure): this; /** * 设置用户创建的消息处理器 * @param handler */ handleUserCreated(handler: ServerHandlerClosure): this; /** * 设置用户更新的消息处理器 * @param handler */ handleUserUpdated(handler: ServerHandlerClosure): this; /** * 设置用户删除的消息处理器 * @param handler */ handleUserDeleted(handler: ServerHandlerClosure): this; /** * 设置部门创建的消息处理器 * @param handler */ handlePartyCreated(handler: ServerHandlerClosure): this; /** * 设置部门更新的消息处理器 * @param handler */ handlePartyUpdated(handler: ServerHandlerClosure): this; /** * 设置部门删除的消息处理器 * @param handler */ handlePartyDeleted(handler: ServerHandlerClosure): this; /** * 设置异步任务完成的消息处理器 * @param handler */ handleBatchJobsFinished(handler: ServerHandlerClosure): this; /** * 添加普通消息处理器 * @param type * @param handler * @returns */ addMessageListener(type: ServerMessageType, handler: ServerHandlerClosure): this; /** * 添加事件消息处理器 * @param event * @param handler * @returns */ addEventListener(event: ServerEventType, handler: ServerHandlerClosure): this; /** * 获取来自微信服务器的推送消息 * @param request 未设置该参数时,则从当前服务端收到的请求中获取 * @returns */ getRequestMessage(request?: ServerRequestInterface): Promise; protected validateUrl(): (message: Message, next: ServerHandlerClosure) => Promise; protected decryptRequestMessage(): ServerHandlerClosure; /** * 获取解密后的消息 * @param request 未设置该参数时,则从当前服务端收到的请求中获取 * @returns */ getDecryptedMessage(request?: ServerRequestInterface): Promise; } interface Server { with(next: ServerHandlerClosure): this; withHandler(next: ServerHandlerClosure): this; prepend(next: ServerHandlerClosure): this; prependHandler(next: ServerHandlerClosure): this; without(next: ServerHandlerClosure): this; withoutHandler(next: ServerHandlerClosure): this; } export = Server;