///
import { Promise } from 'bluebird';
import { RequestInfo, RequestInit, Response } from 'node-fetch';
import { MiniSubscribeData, SubscribeMessageInfo, TemplateData, WxAccessToken, WxCodeSession, WxQrTicketInfo, WxSendTemplateInfo } from './wx.interfaces';
import { WxUserInfo, WxUserList } from './wx.vo';
declare type QrScene = {
expire_seconds?: number;
action_name: 'QR_SCENE';
action_info: {
scene: {
scene_id: string;
};
};
} | {
expire_seconds?: number;
action_name: 'QR_STR_SCENE';
action_info: {
scene: {
scene_str: string;
};
};
};
declare type QrLimitScene = {
action_name: 'QR_LIMIT_SCENE';
action_info: {
scene: {
scene_id: string;
};
};
} | {
action_name: 'QR_LIMIT_STR_SCENE';
action_info: {
scene: {
scene_str: string;
};
};
};
export declare type TemplateInfo = {
touser: string;
template_id: string;
data: TemplateData;
color?: string;
};
export declare type MiniAppTemplateInfo = TemplateData & {
miniprogram?: {
appid: string;
pagepath: string;
};
pagepath?: string;
};
export declare type UrlRedirectTemplateInfo = TemplateData & {
url: string;
};
export declare type MiniSubscribeInfo = {
touser: string;
template_id: string;
page?: string;
data: MiniSubscribeData;
};
declare type CreateQRCode = {
path: string;
width?: number;
};
declare type GetMiniCode = {
path: string;
width?: number;
auto_color?: boolean;
line_color?: Record<'r' | 'g' | 'b', string>;
is_hyaline?: boolean;
};
export declare type TemplateMsgInfo = TemplateInfo | MiniAppTemplateInfo | UrlRedirectTemplateInfo;
export declare class WxApi {
/**
* https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html
* @param opts.mini 是否是小程序
*/
static getAccessToken: (opts?: {
appId?: string;
appSecret?: string;
mini?: boolean;
}) => Promise;
static code2Session: (code: string) => Promise;
static getUserList: (nextOpenId?: string) => Promise;
static batchGetUserInfo: (openIds: string[]) => Promise;
/**
* https://developers.weixin.qq.com/doc/offiaccount/User_Management/Get_users_basic_information_UnionID.html#UinonId
* @param openId
*/
static getUserInfo: (openId: string) => Promise;
static sendTemplateMsg: (opts: TemplateMsgInfo) => Promise;
/**
* 小程序订阅消息发送
* https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html
* @param opts
*/
static sendSubscribeMsg: (opts: MiniSubscribeInfo) => Promise;
static createQrTicket: (opts: QrScene | QrLimitScene) => Promise;
/**
* https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.createQRCode.html
* @param opts
*/
static createQRCode: (opts: CreateQRCode) => Promise;
/**
* https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.get.html#HTTPS%20%E8%B0%83%E7%94%A8
* @param opts
*/
static getMiniCode: (opts: GetMiniCode) => Promise;
static getQrCodeByTicket: (ticket: string) => Promise;
static wrappedFetch(url: RequestInfo, init?: RequestInit): Promise;
static logInterceptor(response: T): Promise>;
static withConfig(call: (config: WeChatServiceConfig) => Promise): Promise;
static withMiniConfig(call: (config: WeChatServiceConfig) => Promise): Promise;
static withAccessToken(fn: (config: WeChatServiceConfig, opts: {
accessToken: string;
}) => Promise, mini?: boolean): Promise;
}
export declare class WeChatServiceConfig {
login?: boolean;
saveToAdmin?: boolean;
enabled?: boolean;
token?: string;
appId?: string;
appSecret?: string;
miniEnabled?: boolean;
miniAppId?: string;
miniAppSecret?: string;
constructor(o: WeChatServiceConfig);
}
export declare enum WeChatFieldKeys {
login = "wechat.login",
saveToAdmin = "wechat.save-to-admin",
enabled = "service.enabled",
token = "service.token",
appId = "service.appid",
appSecret = "service.appsecret",
miniEnabled = "mini.enabled",
miniAppId = "mini.appid",
miniAppSecret = "mini.appsecret"
}
export {};